如何将控制台输出写入txt文件?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (26)

我尝试使用以下代码建议将控制台输出写入txt文件

try {
      //create a buffered reader that connects to the console, we use it so we can read lines
      BufferedReader in = new BufferedReader(new InputStreamReader(System.in));

      //read a line from the console
      String lineFromInput = in.readLine();

      //create an print writer for writing to a file
      PrintWriter out = new PrintWriter(new FileWriter("output.txt"));

      //output to the file a line
      out.println(lineFromInput);

      //close the file (VERY IMPORTANT!)
      out.close();
   }
      catch(IOException e1) {
        System.out.println("Error during reading/writing");
   }
提问于
用户回答回答于

你需要这样做:

PrintStream out = new PrintStream(new FileOutputStream("output.txt"));
System.setOut(out);

第二条语句是关键。它改变了所谓的“最终”的价值。System.out属性为提供的PrintStream值。

有类似的方法(setInsetErr)来更改标准输入流和错误流

这些功能提供了诸如通过运行时配置文件进行细粒度日志记录控制、支持滚动日志文件、为系统日志记录提供提要等功能。

或者,如果正在做的不是“日志记录”,那么可以考虑:

  • 将标准输出重定向到命令行上的文件,或
  • 将应用程序更改为使用out流作为参数传递,而不是写入System.out...

System.out对于JVM中的其他代码来说,可能会造成令人不快的意外,而这些代码并不期望发生这种情况。

用户回答回答于

不需要编写任何代码,只需在控制台上编写:

javac myFile.java
java ClassName > a.txt

输出数据存储在.txt文件中。

扫码关注云+社区