我有一个 ZipInputStream ,其中包含许多要对其应用转换的 XML 文件。以下代码加载 XSLT 和 ZIP 文件并循环通过 ZIP 条目,尝试将转换应用于每个条目。但是,在执行转换后,转换函数似乎正在关闭输入流,导致 getNextEntry() 函数失败,因为流已关闭。
有没有解决这个问题的简单方法(保持输入流打开,允许 ZipInputStream 移动到下一个条目)或者我在这里错过了更基本的东西?
TransformerFactory tFactory = TransformerFactory.newInstance();
Transformer transformer = tFactory.newTransformer(new StreamSource(xsltFileName));
FileInputStream fis = new FileInputStream(fileName);
ZipInputStream zis = new ZipInputStream(fis);
ZipEntry ze = null;
while ((ze = zis.getNextEntry()) != null)
{
String newFileName = ze.getName();
transformer.transform(new StreamSource(zis), new StreamResult(new FileOutputStream(newFileName)));
}
我试图寻找解决方案,但似乎没有提出任何有意义的建议。我很感激任何想法或反馈。