为什么PrintStream类引用在java的System类中被声明为静态变量



我可以在不涉及System类的情况下使用PrintStreamprintln()方法吗?

绝对-System.outSystem.err只是与标准输出和标准误差相关的PrintStream值。

您可以从任何OutputStream创建一个PrintStream,也可以只提供一个文件名。但是,它将始终使用系统默认编码。

首选PrintWriter,它将封装任意的Writer。然而,这将仍然抑制IOException被抛出,这对我来说似乎不是一个好主意

首选BufferedWriter:

BufferedWriter wrapper = new BufferedWriter(writer);
try {
    wrapper.write(...);
    wrapper.newLine();
} finally {
    wrapper.close();
}

System类不"引用PrintStream类"。它有两个类型为PrintStream的静态字段:outerr。因此,如果您想写入输出流,可以使用System.out。如果要写入错误流,请使用System.err。如果您想写入另一个PrintStream,您可以自己构造一个:new PrintStream(...)

相关内容

  • 没有找到相关文章

最新更新