xml无法删除java Transformer创建的文件
我以以下方式使用java中的Transformer类:
1 Transformer transformerFinal = tFactory.newTransformer(new StreamSource(finalStylesheet));
2 transformerFinal.setParameter("Date", sdf.format(myDate));
3 transformerFinal.transform(new StreamSource(tempFilename), new StreamResult(new FileOutputStream(finalFilename)));
然后我想删除这个用于转换的源文件
4 File fileToDelete = new File(tempFilename);
5 fileToDelete.delete();
它不起作用,我的意思是文件不会被删除
但是如果在line 3
我传递一个o/p流的局部变量,即
1 FileOutputStream fos = new FileOutputStream(finalFilename);
4 transformerFinal.transform(new StreamSource(tempFilename), new StreamResult(fos));
5 fos.close();
现在,删除功能开始工作,它确实删除了文件
那么,当我得出结论,o/p流在transform
过程中没有隐式关闭时,我是对的吗?因此我必须明确地关闭流
如果有任何其他原因导致文件无法删除,请大家分享
请假设所有变量都有正确的值
谢谢
Update
还有一件事我注意到了
我从另一个类调用此代码,例如-
public class ClassTwo {
public void ameth(String tempFilename) {
// the above mentioned transformation code
}
}
1 public class ClassOne {
2 public void method1() {
3 ClassTwo ct = new ClassTwo();
4 ct.ameth("tempFilename1");
5 ct.ameth("tempFilename2");
6 }
7 }
在这里,当我没有显式关闭流时,它确实删除了tempFilename2
,但没有删除tempFilename1
知道为什么会这样吗
共 (0) 个答案