13

この2つの使い方に違いはありますか?いつどちらを使用しますか?

System.out.println(result);

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

4 に答える 4

11

主な違いは、System.outPrintStreamで、もう 1 つはPrintWriterです。基本的に、はバイトPrintStreamストリームを書き込むために使用する必要があり、は文字ストリームを書き込むために使用する必要があります(したがって、文字エンコーディングなどを処理します)。PrintWriter

ほとんどのユースケースでは、違いはありません。

于 2013-12-21T18:36:24.433 に答える
5

System.outのインスタンスですPrintStream

PrintStreamしたがって、あなたの質問はvsに絞り込まれますPrintWriter

  • a によって出力されるすべての文字PrintStreamは、プラットフォームのデフォルトの文字エンコーディングを使用してバイトに変換されます。(Syso はシステム出力/コンソールに直接書き込みます)

  • このPrintWriterクラスは、バイトではなく文字を書き込む必要がある状況で使用する必要があります。

于 2013-12-21T18:35:32.337 に答える
3

一度に 10^3 行以上印刷する必要がある場合は、PrintWriter を使用することをお勧めします。 10^5までの性能比較 10^7までの性能比較

これらのスニペットを 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();
    }
}
于 2020-07-26T08:21:27.160 に答える
0

Yes, there is a slight difference. out.println() is short and is used in JSP while PrintWriter is used in servlets. out.println() is also derived from PrintWriter.

于 2013-12-21T18:38:34.187 に答える