Чтение нескольких файлов xls из zip-файла - PullRequest
0 голосов
/ 28 января 2020

Я пытаюсь прочитать несколько файлов xls, которые находятся в файле .zip, используя код ниже. Я получаю missed end of block ошибку. Нужно ли добавлять символ EOF в конец байтового массива, прежде чем я отправлю его в poi?

Код ниже:

val zipStream=new ZipInputStream(inputStream)
var zipEntry = null

while(zipEntry = zipStream.getNextEntry != null){
    val bytes=new Array[Byte](zipEntry.getSize.toInt)
    zipStream.readBytes(bytes)
    val xlsByteStream = new   ByteArrayInputStream(bytes)
    val workbook = new XSSFWorkbook(xlsByteStream)
}

1 Ответ

0 голосов
/ 29 января 2020
val zipStream=new ZipInputStream(inputStream) 
var zipEntry = null 

while({zipEntry = zipStream.getNextEntry; zipEntry != null})
{ 
    val bytes=new Array[Byte](1024)
    val bos = new ByteArrayOuputStream(zipEntry.getSize.toInt)
    while({i=zipStream.read(bytes);i>0}) {
        bos.write(bytes, 0, i)
    }
    bos.close
    val xlsByteStream = new ByteArrayInputStream(bos.toByteArray) 
    val workbook = new XSSFWorkbook(xlsByteStream) 
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...