2010-06-15 62 views
0

我想将我的DOM文档保存为XML文件。 我按照这个教程:http://java.sun.com/j2ee/1.4/docs/tutorial/doc/JAXPXSLT4.html从OutputStream到文件流

所以,这是我的代码:但的System.out

... 
TransformerFactory tFactory = TransformerFactory.newInstance(); 
Transformer transformer = tFactory.newTransformer(); 
DOMSource source = new DOMSource(doc); 
StreamResult result = new StreamResult(System.out); 
transformer.transform(source, result); 

相反,我想在一个文件中的结果进行保存。我怎样才能做到这一点?

回答

3

使用

new StreamResult(new FileOutputStream(...)) 

但是你可能想使用一个Writer,让您在输出编码的字符,除非StreamResult使用Unicode编码,说UTF-8,含蓄。

+0

对XML使用'InputStream'和'OutputStream'对象,因为XML在内部描述了它的编码。例如,使用UTF-16编码创建一个'OutputStreamWriter'。 'Transformer'不能自动检测到,因此它在'xml'声明中使用了“UTF-8”的“encoding”属性。当分析结果XML时,按照文档中的规定使用UTF-8解码器,但由于实际编码为UTF-16,所以失败。你可以通过在'Transformer'上设置'OutputKeys.ENCODING'属性来解决这个问题,但是为什么呢? – erickson 2010-06-15 18:00:27