web-dev-qa-db-ja.com

Java.io.writerの追加メソッドと書き込みメソッドの違いは何ですか?

Java.io.Writer インターフェースには、追加と書き込みという2つのメソッドがあります。これら2つの違いは何ですか?それも言う

out.append(c)形式のこのメソッドの呼び出しは、呼び出しout.write(c)とまったく同じように動作します。

では、2つのメソッド名のバリアントがある理由は何ですか?

30
Svish

Append()とwrite()の間には小さな違いがあります。これらすべては、Javadocを読むことで解決できます。ヒント。 ;)

  • 書き込みはnullであってはならない文字列のみを取り、voidを返します
  • appendは、nullになる可能性のある任意のCharSequenceを取得し、連鎖できるようにWriterを返します。

writeは、CharSequenceが利用可能になる前に作成された古いスタイルのフォーマットです。

これらのメソッドはオーバーロードされるため、

  • write(int)intはcharにキャストされます。 append(char)はchar型である必要があります。
  • write(char[] chars)はcharの配列を取り、同等のappend()はありません。
33
Peter Lawrey

おそらくAppendableインターフェースに準拠するために http://download.Oracle.com/javase/6/docs/api/Java/lang/Appendable.html

7
jjwchoy

Append()CharSequenceを取ることができますが、write()Stringを取ることができます。

StringCharSequenceの実装であるため、Stringappend()に渡すこともできます。ただし、StringBuilderまたはStringBufferappendに渡すこともできます。これは、write()では行えません。

5
Tom Jefferys

ドキュメントからわかるように、appendは先ほど書き込んだWriterも返すため、次のような複数の追加を実行できます。

out.append(a).append(b).append(c)
5
David

Writer.append(c)は、Writerインスタンスを返します。したがって、複数の呼び出しをチェーンして追加することができます。 out.append("Hello").append("World");

1
joe776

Appendableインターフェースの副産物のように思えますが、Java.io.Writerとの互換性を提供するために実装しますJava.util.Formatter。お気づきのように、ドキュメントではJava.io.Writer 2つの方法の間に実際的な違いはありません。

1
aroth