2010-06-15 59 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