#zip4j
Вопрос:
Я написал некоторый код для извлечения потока данных ByteArray и обнаружил, что при использовании по умолчанию возникло исключение недопустимого размера записи java.util.ZipInputStream
, но оно не встречается в zip4j ZipInputStream
fun extractToLocal(fileContent: ByteArray, directory: String): String { // in zip4j, this code works perfectly, but, if I use java.util.ZipStream here // the java.util.zip.ZipException: invalid entry size (expected 0 but got 57344 bytes) has occurred ZipInputStream(ByteArrayInputStream(fileContent)).use { zipInputStream -gt; val zipEntry = zipInputStream.nextEntry val newFile = File(directory, zipEntry.fileName) newFile.outputStream().use { fileOutputStream -gt; var len: Int while (zipInputStream.read().also { len = it } != -1) { fileOutputStream.write(len) } fileOutputStream.flush() } return zipEntry.fileName } }
Конечно, каждая ZipInputStream
close
функция отличается, но я просто задался вопросом, почему даже подобное исключение не произошло в zip4j.
Я использую zip4j
неправильно? Или это просто из-за разницы между zip4j
java.util.zip
стратегией распределения памяти и?
Большое спасибо!