我从互联网上找到下面的代码,它可以工作,但不会将控制台输出写入omt.txt文件,它只会在第二个catch块后写入System.out.println
语句。如果你运行一次代码,你就会理解我的意思。我想做的就是将控制台上的内容写到名为"omt.txt"的文件中,仅此而已...
在得到一些回答之后,我意识到我的问题没有说明清楚,对此我很抱歉。 我想把控制台输出保存到omt.txt文本文件中。如果控制台上打印了"Hello 123",它也应该出现在omt.txt文件中。换句话说,无论控制台上打印了什么,都应该同时写入omt.txt文件,或者在控制台执行后写入,但输出结果应该完全相同!
import java.io.File;
import java.io.FileOutputStream;
import java.io.PrintStream;
public class Wrt_file {
public static void main(String[] args) {
System.out.println("THIS is what I see on the console. but not on TEXT file");
File f = new File("omt.txt");
if(!f.exists())
{
try {
f.createNewFile();
} catch (Exception e) {
e.printStackTrace();
}
}
try {
FileOutputStream fos = new FileOutputStream(f);
PrintStream ps = new PrintStream(fos);
System.setOut(ps);
} catch (Exception e) {
e.printStackTrace();
}
System.out.println("THIS is what I see on the text file, but not on CONSOLE");
for (int i=0; i<10; i++){
System.out.println("Testing");
}
}
}
右键单击项目
->构建路径
->添加外部库
。 - Pshemocommons-io-2.4-bin.zip
。解压后,您会看到commons-io-2.4.jar
。将其添加到您的项目中。 - PshemoSystem.setOut(ps)
后,你需要将打印该行的代码移到后面。在重定向输出流之前,我没有看到包含已经打印出来的消息的任何方法。 - Pshemo