从zip文件读取多个xls文件

时间:2020-01-28 17:08:47

标签: apache-poi

我正在尝试使用以下代码读取.zip文件中的多个xls文件。我收到missed end of block错误。在发送给poi之前,是否需要在字节数组的末尾添加EOF类型的字符?

以下代码:

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 :(得分:0)

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) 
}
相关问题