我是Java的新手,我被困在这个部分:
我正在尝试使用JAVA将控制台输出输出到文本文件中。 但问题是我有一个 While循环正在运行,我的代码将输出写入文件但删除了前一个。 我想将while循环输出附加到文件。
感谢任何帮助。在此先感谢:)
PrintStream out = new PrintStream(new FileOutputStream(“output.txt”));
System.setOut(下);
答案 0 :(得分:3)
你需要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();
}
答案 1 :(得分:2)
您应该执行重定向一次,然后再执行其他操作。即在你进入你的循环之前。
请注意(另外)您的shell可以重定向到文件,这可能比更改System.out
的目标更可取。这是可行的,但对于那些将来调试你的代码并想知道他们的输出在哪里的人来说可能是意外的......
或者考虑一下logging framework?
答案 2 :(得分:-1)
这样做:
FileOutputStream fout=new FileOutputStream("output.txt",true);
while(condition)
{
PrintStream out = new PrintStream(new FileOutputStream("output.txt"));
System.setOut(out);
}
FileOutputStream的第二个参数将以可附加模式打开它。