我是 Java 新手,我被困在这一部分:
我正在尝试使用 JAVA 将控制台输出输出到文本文件中。但问题是我有一个While 循环正在运行,我的代码将输出写入文件但删除了前一个。我想将 while 循环输出附加到 file 。
任何帮助表示赞赏。提前致谢 :)
PrintStream out = new PrintStream(new FileOutputStream("output.txt"));
System.setOut(out);
您需要将append
文件中的新数据转换为以前的数据,试试这个...
try{
File f = new File("d:\\t.txt");
FileWriter fw = new FileWriter(f,true); // true is for append
BufferedWriter bw = new BufferedWriter(fw);
bw.append(Your_data);
}catch(Exception ex){
ex.printStackTrace();
}
您应该执行一次重定向,然后再执行其他任何操作。即在你进入你的循环之前。
请注意(还)您的 shell 可以重定向到文件,这可能比更改System.out
. 这是可行的,但对于将来要调试您的代码并想知道他们的输出去向的人来说可能是出乎意料的......
或者也许考虑一个日志框架?
像这样做:
FileOutputStream fout=new FileOutputStream("output.txt",true);
while(condition)
{
PrintStream out = new PrintStream(new FileOutputStream("output.txt"));
System.setOut(out);
}
其中 FileOutputStream 的第二个参数将以可附加模式打开它。