System.out.println与PrintWriter

时间:2013-12-21 18:22:17

标签: java io printwriter printstream

使用这两个有区别吗?你什么时候用一个而不是另一个?

System.out.println(result);

PrintWriter out = new PrintWriter(System.out);
out.println(result);
out.flush();

4 个答案:

答案 0 :(得分:10)

主要区别在于System.outPrintStream而另一个是PrintWriter。基本上,PrintStream应该用于编写字节的流,而PrintWriter应该用于编写字符流(因此它处理字符编码等。)

对于大多数用例,没有区别。

答案 1 :(得分:5)

System.outPrintStream

的实例

因此,您的问题会缩小到PrintStream vs PrintWriter

  • 使用平台的默认字符编码将PrintStream打印的所有字符转换为字节。 (Syso直接写入系统输出/控制台)

  • PrintWriter类应该在需要编写字符而不是字节的情况下使用。

答案 2 :(得分:2)

如果您必须一次打印10 ^ 3行以上,建议使用PrintWriter。 Performace comparison up to 10^5 Performace comparison up to 10^7

我通过将这些代码片段分别运行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。