虽然 System.out 保存对控制台的引用 System 类提供了一个名为 setOut() :
public void setOut(PrintStream out)
同样,也有一些方法 setErr(PrintStream) 甚至是 setIn(InputStream) 哪些可以用来改变 out , err 及 in 要引用不同的流(如文件),您可以执行以下操作:
PrintStream standardOut = System.out;
PrintStream fileOut = new PrintStream(new File("filename.txt");
System.setOut(fileOut);
System.out.println("Hello World!") // This will output to the file
System.setOut(standardOut); // Reset to the standard output stream
printstream的其他方法
除了 println , PrintStream 定义如下方法 printf 及 format 这也允许你格式化你的输入,就像用c语言一样。这两种方法是相同的:
int n1 = 10, n2 = 20;
int sum = n1 + n2;
System.out.printf("%d + %d = %d", n1, n2, sum);
System.out.format("%d + %d = %d", n1, n2, sum);
PrintStream fileOut = new PrintStream(new FileOutputStream("output.txt"), true);
PrintStream console = System.out; // store current System.out
System.setOut(fileOut);
System.out.println("This will be written to output.txt");
2条答案
按热度按时间6qfn3psc1#
系统输出
System.out
是一个static
类型的对象PrintStream
. 它包含对标准输出流的引用,通常是控制台。通常,当您希望在控制台应用程序中与用户交互或向用户显示消息、向控制台记录状态和错误消息时,打印到控制台非常有用。对于调试来说,打印出变量的值,并检查程序是否达到某个特定值是非常有用的if-else
分支或循环。system.err
还有一个对象称为
System.err
它包含对标准错误流的引用。它通常也是控制台,与System.out
也有参考资料。因此,你可以写:你会在控制台上收到一条消息,就像你以前使用的一样
System.out
. 但是err
通常建议打印错误消息。重定向
虽然
System.out
保存对控制台的引用System
类提供了一个名为setOut()
:同样,也有一些方法
setErr(PrintStream)
甚至是setIn(InputStream)
哪些可以用来改变out
,err
及in
要引用不同的流(如文件),您可以执行以下操作:printstream的其他方法
除了
println
,PrintStream
定义如下方法printf
及format
这也允许你格式化你的输入,就像用c语言一样。这两种方法是相同的:muk1a3rh2#
严格地说,这份声明
System.out.println("xyz")
除了写入传递的字符串之外,没有其他用途(xyz
)和一个行分隔符(System.lineSeparator()
)到PrintStream
分配给System.out
.注意,上面的语句中没有提到控制台。因为可以重新分配“标准”输出流(
System.out
),我们可以通过执行System.out.println("xyz")
.以下是一个例子: