17

私のサーブレットでは、 と の両方out.printを指定しout.writeました。ただし、両方ともブラウザに表示されます。

これら 2 つの正確な違いと、 と を使用するタイミングは何out.printですかout.write?

4

9 に答える 9

10

プリントライター:

public void write(String s)

文字列を書きます。このメソッドは、I/O 例外を抑制する必要があるため、Writer クラスから継承できません。

print メソッドの方が抽象度が高いです。

public void print(String s)

文字列を出力します。引数が null の場合、文字列 "null" が出力されます。それ以外の場合、文字列の文字はプラットフォームのデフォルトの文字エンコーディングに従ってバイトに変換され、これらのバイトは write(int) メソッドとまったく同じ方法で書き込まれます。

お役に立てれば。

于 2013-08-20T14:53:13.730 に答える
2

あなたの場合の out 変数は、おそらく PrintWriter を参照しています

書き込みの説明を比較するだけです...

public void write(String s)

文字列を書きます。このメソッドは、I/O 例外を抑制する必要があるため、Writer クラスから継承できません。

... println の説明付き ...

public void println(String x)

文字列を出力してから行を終了します。このメソッドは、print(String) を呼び出してから println() を呼び出すかのように動作します。

...そして印刷...

public void print(String s)

文字列を出力します。引数が null の場合、文字列 "null" が出力されます。それ以外の場合、文字列の文字はプラットフォームのデフォルトの文字エンコーディングに従ってバイトに変換され、これらのバイトは write(int) メソッドとまったく同じ方法で書き込まれます。

全体として、印刷メソッドはより高いレベルの抽象化で機能し、サーブレットを作成するときに使用することを好むメソッドだと言えます。

于 2013-08-20T14:59:39.097 に答える
-1

out.write(-) と out.print(-)

もう 1 つの違いは、 out.write(-) メソッドがデータまたはオブジェクトをファイルのようにブラウザに書き込むことです。out.write(10*20);のようなステートメントを書くことはできません。しかし、これはout.print(10*20);で行います。

于 2016-10-07T16:48:27.543 に答える