如何使用java将控制台内容复制到记事本

如何使用java将控制台内容复制到记事本,java,Java,我使用java创建了xml文件。我只想通过编码而不是运行配置过程将控制台中的xml文件复制到记事本。。。。。。我试着用 PrintStream out = new PrintStream(new FileOutputStream("notepad.txt")); System.setOut(out); 但上面这一行会导致在特定位置创建记事本。但数据不会复制到记事本中。这会导致记事本变空 用于创建xml:我使用了下面的代码,效果很好 Transformer tf = TransformerFac

我使用java创建了xml文件。我只想通过编码而不是运行配置过程将控制台中的xml文件复制到记事本。。。。。。我试着用

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);

任何人请在这方面帮助我……

看起来您正在使用
StreamResult
类,所以让我们看看:

从字节流构造StreamResult。通常,流应该 使用而不是读卡器,以便变压器可以使用 要控制的转换指令中包含的指令 编码

因此,它接受
OutputStream
作为参数,因此您可以在创建
StreamResult
实例时传递
out
newfileoutputstream(“notepad.txt”)
,例如:

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

OR

OutputStream fileOutputStream = new FileOutputStream("notepad.txt");
Result dest = new StreamResult(fileOutputStream);
fileOutputStream.close();
这将确保内容写入文件中。无需为此使用
System.out

更新

为了将相同的内容打印到
控制台
,您必须使用
StringWriter
进行另一次转换,例如:

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

这会将内容打印到控制台。

所说的“记事本”是指Windows文本编辑器记事本吗?是否要打开一个包含xml的新记事本窗口?还是希望XML显示在现有记事本窗口中?如果创建了一个新文件,是否可以,或者记事本包含一个未保存的缓冲区是否重要?是否尝试了
out.flush()
out.close()结尾?我想保存在新的记事本文件mate中..我没有使用out.flush();可能是重复的谢谢,伙计。。。它工作得很好。。。。。但唯一担心的是,它不会在控制台中显示任何内容。。所有内容都在记事本中…这不是您想要的吗(即,将所有内容写入记事本文件)?是!!但我两者都要@库马尔更新了答案..我可以在记事本和控制台中获得结果..谢谢你的帮助。。。
StringWriter writer = new StringWriter();
StreamResult result = new StreamResult(writer);
tf.transform(src, result);
System.out.println(result.toString());