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