この2つの使い方に違いはありますか?いつどちらを使用しますか?
System.out.println(result);
対
PrintWriter out = new PrintWriter(System.out);
out.println(result);
out.flush();
この2つの使い方に違いはありますか?いつどちらを使用しますか?
System.out.println(result);
対
PrintWriter out = new PrintWriter(System.out);
out.println(result);
out.flush();
主な違いは、System.out
がPrintStream
で、もう 1 つはPrintWriter
です。基本的に、はバイトPrintStream
ストリームを書き込むために使用する必要があり、は文字ストリームを書き込むために使用する必要があります(したがって、文字エンコーディングなどを処理します)。PrintWriter
ほとんどのユースケースでは、違いはありません。
System.out
のインスタンスですPrintStream
PrintStream
したがって、あなたの質問はvsに絞り込まれますPrintWriter
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();
}
}
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.