当在使用 ZIPInputStream 循环处理压缩文件中的条目时,出现 HSSFWorkbook stream closed 错误,通常是因为 HSSFWorkbook 在处理过程中关闭了底层的输入流,从而影响了后续 ZIPInputStream 读取其他条目。
为了避免 HSSFWorkbook 关闭底层输入流影响 ZIPInputStream 的使用,可以将每个 ZIP 条目的内容复制到一个 ByteArrayInputStream 中,然后使用这个新的输入流来创建 HSSFWorkbook。这样,即使 HSSFWorkbook 关闭了 ByteArrayInputStream,也不会影响 ZIPInputStream。
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.usermodel.Workbook;
import java.io.*;
import java.util.zip.ZipEntry;
import java.util.zip.ZipInputStream;
public class ZipProcessingExample {
public static void main(String[] args) {
try (FileInputStream fis = new FileInputStream("your_zip_file.zip");
ZipInputStream zipInput = new ZipInputSt

最低0.47元/天 解锁文章
1450

被折叠的 条评论
为什么被折叠?



