Оптимальный размер буфера для записи на диск при распаковке 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
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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