我正在运行一个包含许多类的程序,用一个驱动程序来运行所有这些类。当我运行驱动程序时,输出可以很好地打印在控制台上,但我还需要将控制台的准确输出打印到文件中。
但是,我似乎无法将控制台输出打印到文件中。我已经尝试过这里的建议
How to write console output to a txt file
通过这样做
import java.io.FileOutputStream;
import java.io.PrintStream;
public class Compiler {
public static void main(String args[]){
try {
Parse parser = new Parse();
SemanticAnalyzer sAnalyzer = new SemanticAnalyzer();
String parserfile= parser.parsefile(args[0]);
sAnalyzer.semanticAnalysis(parserfile);
PrintStream out = new PrintStream(new FileOutputStream("output.txt"));
System.setOut(out);
} catch (Exception e) {
e.printStackTrace();
}
}
}
但文件仍然显示为空白(也许是因为打印语句位于其他文件中?)。
有人有什么想法吗?
最佳答案
创建一个方法,在输出打印到两个流的任何内容时,您将在整个代码中使用该方法:
private void output(String text, PrintStream ps1, PrintStream ps2) {
ps1.println(text);
ps2.println(text);
}
并从代码中调用它:
PrintStream ps = new PrintStream(new FileOutputStream("output.txt"));
output("text1", System.out, ps);
output("text2", System.out, ps);
output("text3", System.out, ps);
ps.close();
关于java - 打印到控制台和文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26029117/