В чем разница между методами добавления и записи java.Ио.писатель?
java.Ио.Писатель интерфейс имеет два метода, называемых append и write. В чем разница между этими двумя? Он даже говорит, что
вызов этого метода формы
out.append(c)
ведет себя точно так же, как и вызовout.write(c)
Итак, какова причина наличия двух вариантов имени метода?
6 ответов
существуют незначительные различия между append () и write (). Все это вы можете решить, прочитав Javadocs. Намек. ;)
- write будет принимать только строку, которая не должна быть null и возвращает
void
- append примет любой CharSequence который может быть null и возвратит писателя поэтому его можно приковать.
write-это более старый формат стиля, созданный до появления CharSequence.
эти методы перегружены, так что есть
-
write(int)
здесьint
брошен в char.append(char)
должен быть тип char. -
write(char[] chars)
принимает массив char, нет эквивалентного добавления ().
вероятно, чтобы соответствовать прилагаемому интерфейсу:http://download.oracle.com/javase/6/docs/api/java/lang/Appendable.html
Append()
можно взять CharSequence
, тогда как write()
принимает String
.
С String
реализация CharSequence
, вы также можете передать String
to append()
. Но вы также можете пройти StringBuilder
или StringBuffer
to append
, которые вы не можете сделать с write()
.
Как вы можете видеть из документации, append также возвращает писатель вы только что написали, так что вы можете выполнить несколько приложений, таких как:
out.append(a).append(b).append(c)
мне кажется, что это побочный продукт Appendable
интерфейс java.io.Writer
реализует для обеспечения совместимости с java.util.Formatter
. Как вы отметили, документация указывает, что для java.io.Writer
между этими двумя методами нет практической разницы.
Writer.append(c)
возвращает экземпляр Writer. Таким образом, вы можете связать несколько вызовов для добавления, например out.append("Hello").append("World")
;