使用这两个有区别吗?您什么时候会使用其中一种?
System.out.println(result);
相对
PrintWriter out = new PrintWriter(System.out);
out.println(result);
out.flush();
使用这两个有区别吗?您什么时候会使用其中一种?
System.out.println(result);
相对
PrintWriter out = new PrintWriter(System.out);
out.println(result);
out.flush();
主要区别在于System.out
是 aPrintStream
而另一个是 a PrintWriter
。本质上,PrintStream
应该用来写字节流,而应该用来写字符流(因此它处理字符编码等)。PrintWriter
对于大多数用例,没有区别。
System.out
是的实例PrintStream
所以你的问题缩小到PrintStream
vsPrintWriter
a 打印的所有字符PrintStream
都使用平台的默认字符编码转换为字节。(Syso 直接写入系统输出/控制台)
该类PrintWriter
应该用于需要写入字符而不是字节的情况。
如果您必须一次打印超过 10^3 行,我建议使用 PrintWriter。
我通过在 n=10^1 到 10^7 的范围内每次运行这些片段 3 次然后取平均执行时间来得到这个。
class Sprint{
public static void main(String[] args) {
int n=10000000;
for(int i=0;i<n;i++){
System.out.println(i);
}
}
}
import java.io.*;
class Pprint{
public static void main(String[] args) {
PrintWriter out = new PrintWriter(System.out);
int n=10000000;
for(int i=0;i<n;i++){
out.println(i);
}
out.flush();
}
}
是的,有一点不同。out.println()
很短,在 JSPPrintWriter
中使用,而在 servlet 中使用。out.println()
也是从 PrintWriter 派生的。