Почему при использовании zip4j не произошла ошибка недопустимого размера записи?

#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 стратегией распределения памяти и?

Большое спасибо!