小编cly*_*yde的帖子

如何防止ZipInputStream在XSLT转换后被关闭?

我有一个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)));
}
Run Code Online (Sandbox Code Playgroud)

我试图寻找一个解决方案,但似乎没有想出任何有意义的东西.我很感激任何想法或反馈.

java xslt transform zipinputstream

3
推荐指数
1
解决办法
2890
查看次数

标签 统计

java ×1

transform ×1

xslt ×1

zipinputstream ×1