В чем разница между методами добавления и записи 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");