Подтвердить что ты не робот

В чем разница между методами добавления и записи java.io.writer?

Интерфейс java.io.Writer имеет два метода: append и write. Каковы различия между этими двумя? Он даже говорит, что

Вызов этого метода формы out.append(c) ведет себя точно так же, как вызов out.write(c)

Итак, в чем причина наличия двух вариантов имени метода?

4b9b3361

Ответ 1

Существуют незначительные различия между append() и write(). Все это можно прочесть, прочитав Javadocs. Подсказка.;)

  • write будет принимать только строку, которая не должна иметь значение null и возвращает void
  • append возьмет любую CharSequence, которая может быть нулевой и вернуть Writer, чтобы она могла быть скована.

write - это более старый формат стиля, созданный до появления CharSequence.

Эти методы перегружены так, что есть

  • write(int), где int передается в char. append(char) должен быть char.
  • write(char[] chars) принимает массив char, нет эквивалентного append().

Ответ 3

Append() может принимать CharSequence, тогда как write() принимает String.

Так как String является реализацией CharSequence, вы также можете передать String в Append(). Но вы также можете передать StringBuilder или StringBuffer в append, что вы не можете сделать с помощью write().

Ответ 4

Как вы можете видеть из документации, append также возвращает написанный вами Writer, чтобы вы могли выполнять несколько добавлений, таких как:

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

Ответ 5

Writer.append(c) возвращает экземпляр Writer. Таким образом, вы можете связать несколько вызовов для добавления, например. out.append("Hello").append("World");

Ответ 6

Мне кажется, что это побочный продукт интерфейса Appendable, который java.io.Writer реализует, чтобы обеспечить совместимость с java.util.Formatter. Как вы отметили, в документации указывается, что для java.io.Writer нет практической разницы между этими двумя методами.