使用这两个有区别吗?你什么时候用一个而不是另一个?
System.out.println(result);
与
PrintWriter out = new PrintWriter(System.out);
out.println(result);
out.flush();
答案 0 :(得分:10)
主要区别在于System.out
是PrintStream
而另一个是PrintWriter
。基本上,PrintStream
应该用于编写字节的流,而PrintWriter
应该用于编写字符流(因此它处理字符编码等。)
对于大多数用例,没有区别。
答案 1 :(得分:5)
System.out
是PrintStream
因此,您的问题会缩小到PrintStream
vs PrintWriter
使用平台的默认字符编码将PrintStream
打印的所有字符转换为字节。 (Syso直接写入系统输出/控制台)
PrintWriter
类应该在需要编写字符而不是字节的情况下使用。
答案 2 :(得分:2)
如果您必须一次打印10 ^ 3行以上,建议使用PrintWriter。
我通过将这些代码片段分别运行3次(n = 10 ^ 1到10 ^ 7),然后平均执行时间来实现这一点。
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();
}
}
答案 3 :(得分:0)
是的,有一点点差异。 out.println()
很短,在JSP中使用,而PrintWriter
在servlet中使用。 out.println()
也来自PrintWriter。