java - 打印到控制台和文件

标签 java

我正在运行一个包含许多类的程序,用一个驱动程序来运行所有这些类。当我运行驱动程序时,输出可以很好地打印在控制台上,但我还需要将控制台的准确输出打印到文件中。

但是,我似乎无法将控制台输出打印到文件中。我已经尝试过这里的建议

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/

相关文章:

java - 使用 Netbeans 将数据插入 Access 时出错

java - Java 中的工厂模式示例

Java 编译器及其 cmd 输出

java - 这是我应该在 Java 中停止线程的方式吗?

java - maven项目中"Parameter '浏览器' is required by BeforeClass on method beforeClass but has not been marked @Optional or defined"错误

Java 1.6 和 Oracle JDBC 14 setQueryTimeout 不工作

java - SQL 连接悬空 : Where am I not correctly closing up connections correctly?

java - 由于某种原因,鼠标事件在java中不起作用

java - 检查父类(super class)是否为 java.lang.Object

java - 如何在 ScrollView 中将广告固定到屏幕上?