Оптимальный размер буфера для записи на диск при распаковке ZIP-файловJAVA

Программисты JAVA общаются здесь
Anonymous
Оптимальный размер буфера для записи на диск при распаковке ZIP-файлов

Сообщение Anonymous »

Я пишу функцию распаковки для своего приложения на Kotlin, и чтобы сообщить о прогрессе, я буду делать это без copyTo, но через буфер. В примерах, которые я нахожу, всегда используется буфер размером 1024 байт. Есть ли какие-то особые причины сохранять его в этом размере или в определенных ситуациях целесообразно использовать меньший или больший размер?

Обновление: я не не знаю об использовании нескольких буферов. Один для извлечения и один для записи. В этом вопросе я имею в виду буфер записи. Вот мой код:
fun ZipEntry.extract(zipFile: ZipFile, newFile: File, progress: (BytesWritten) -> Unit) : BytesUnzipped {
var bytesUnzipped = 0L
zipFile.getInputStream(this).use { input ->
newFile.outputStream().use { output ->
val buffer = ByteArray(DEFAULT_BUFFER_SIZE)
var bytesRead: Int
while (input.read(buffer).also { bytesRead = it } > 0) {
output.write(buffer, 0, bytesRead)
bytesUnzipped += bytesRead
progress(BytesWritten(bytesRead))
}
}
}
return BytesUnzipped(bytesUnzipped)
}

@JvmInline
value class BytesWritten(val value: Int)

@JvmInline
value class BytesUnzipped(val value: Long)


Подробнее здесь: https://stackoverflow.com/questions/790 ... -zip-files

Вернуться в «JAVA»