2017-06-12 117 views
2

我用java創建XML文件複製到記事本。我只是想複製這是有在控制檯通過記事本通過運行配置過程中的編碼不是XML文件......我試着用如何複製控制檯的內容用java

PrintStream out = new PrintStream(new FileOutputStream("notepad.txt")); 
System.setOut(out); 

但上面的線導致創作特定地點記事本。但數據不會被複制到記事本中。它導致空的記事本。

創建XML:我用這個低於其正常工作代碼

Transformer tf = TransformerFactory.newInstance().newTransformer(); tf.setOutputProperty(OutputKeys.INDENT, "yes"); 
tf.setOutputProperty(OutputKeys.METHOD, "xml"); 
tf.setOutputProperty("{http://xml.apache.org/xslt}indent-amount", "4");   Source src = new DOMSource(xmlDoc); Result dest = new StreamResult(System.out); 
tf.transform(src, dest); 

請人幫我在這....

+0

通過「記事本」你的意思是Windows的文本編輯器,記事本?你想要一個新的記事本窗口來打開你的XML嗎?或者您是否希望XML出現在現有的記事本窗口中?是否可以創建新文件,還是記事本包含未保存的緩衝區很重要? – slim

+0

您是否嘗試過'out.flush();'或'out.close();'? – eztam

+0

我希望在新的記事本文件的隊友救.. – kumar

回答

1

看起來你正在使用StreamResult類,讓我們有一個看看constructor

public StreamResult(OutputStream outputStream) 

從字節流構造構造StreamResult。通常,流應當 而不使用一個閱讀器,使變壓器可使用包含在所述轉換指令以控制 編碼 指令。

所以,acccepts的OutputStream作爲參數,這樣你就可以通過outnew FileOutputStream("notepad.txt")同時創造StreamResult E的情況下,G:

Result dest = new StreamResult(out); 
out.close(); 

OR 

OutputStream fileOutputStream = new FileOutputStream("notepad.txt"); 
Result dest = new StreamResult(fileOutputStream); 
fileOutputStream.close(); 

這將確保內容被寫入進入文件。沒有必要爲此使用System.out

更新

爲了打印相同的內容,以console,你將不得不做另一個轉型與StringWriter,例如:

StringWriter writer = new StringWriter(); 
StreamResult result = new StreamResult(writer); 
tf.transform(src, result); 
System.out.println(result.toString()); 

這將打印的內容到控制檯。

+0

感謝隊友......它的偉大工程.....但是,只有關心就像它沒有顯示任何東西在控制檯..一切都在記事本.... – kumar

+0

是不是你想要的(即寫入所有記事本文件)? –

+0

是啊!但我想要兩個! – kumar