Я пишу модульный тест, который тестирует функциональность, которая создает три файла, сжатых вместе, и возвращает InputStream
(в частности, ByteArrayInputStream
). Я просто хочу взять каждый файл по отдельности, распаковать его, а затем сделать некоторые утверждения о содержимом. Все, что я нахожу в Интернете, - это запись в файл, так как бы я сделал это полностью в памяти?
Вот что я получил:
val zipIn = new ZipInputStream(zippedStream)
Stream.continually(zipIn.getNextEntry)
.takeWhile(_ != null)
.foreach { entry =>
val fout = new FileOutputStream(entry.getName)
val buffer = new Array[Byte](1024)
Stream.continually(zipIn.read(buffer))
.takeWhile(_ != -1)
.foreach(fout.write(buffer, 0, _))
}