【问题标题】:Why does PrintStream print to console [duplicate]为什么 PrintStream 打印到控制台 [重复]
【发布时间】:2020-06-05 21:24:38
【问题描述】:

System.out.println("Hello World") 怎么会打印到控制台?

outPrintStream 类型的静态变量。在外面你打电话给println()。它如何打印到控制台?这是默认频道吗?我也可以说打印到文件吗?

【问题讨论】:

  • 这是一个解决方案:baeldung.com/java-write-to-file 但它是 java 吗?你确定 ?看起来像 C++
  • 是的,System.out == 控制台。
  • 如果您的 JVM 的 SecurityManager 允许,您可以使用 System.setOut(PrintStream out) 重新分配输出。就像 Bartosz 所说的,通常写入文件的方式不同。
  • PrintStream 包装了一个 OutputStream。而stdout是一个ostream/OutputStream
  • System.out 表示标准输出“标准输出,也称为标准输出,是进程可以写入输出的默认文件描述符。” programcreek.com/java-api-examples/?api=java.lang.System.Logger

标签: java


【解决方案1】:

是的。控制台是默认输出流。为了使用 system.out.println() 命令写入文件,您需要更改输出流。

PrintStream fileOut = new PrintStream("./out.txt");
System.setOut(fileOut);
System.out.println("this write in file");

【讨论】:

  • 好的。所以变量 out 来自 Type PrintStream 。我认为 PrintStream 仅适用于 Files 。那么怎么能默认控制台呢。控制台不是文件。
  • 不,PrintStream 不仅适用于文件。 PrintStream 为其超类 OutputStream 添加了一些功能。还有另一个名为 FileOutputStream 的 OutputStream 是为文件制作的。要创建可以写入文件的 PrintStream,您需要执行以下操作: new PrintStream(new FileOutputStream("Engineer.txt"));
【解决方案2】:

out 在启动期间被实例化并被映射到主机的标准输出控制台(默认为控制台)。

您可以更改 out 对象,例如而不是标准输出写入文件,使用setOut 方法:

System.setOut(new PrintStream(new FileOutputStream("log.txt")));
System.out.println("Writing to log.txt");

【讨论】:

    猜你喜欢
    • 2018-04-15
    • 2012-11-01
    • 2015-08-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-14
    • 2020-05-17
    • 2016-07-07
    相关资源
    最近更新 更多