2011-05-10 5 views

Respuesta

27

Existen diferencias menores entre append() y write(). Todo lo cual puedes resolver leyendo los Javadocs. Insinuación. ;)

  • escritura sólo tomará una cadena que no debe ser nulo y se devuelve void
  • append se llevará a cualquier CharSequence que puede ser nula y devolver el escritor para que pueda ser encadenado.

escribir es un formato de estilo anterior creado antes de que CharSequence estuviera disponible.

Estos métodos están sobrecargados de modo que hay un

  • write(int) donde el int es echado a un char. append(char) debe ser un tipo de caracteres.
  • write(char[] chars) toma una matriz de char, no hay append equivalente().
+0

¿Eso quiere decir que debo utilizar datos anexados en lugar de escribir? ¿Por qué no podían simplemente haber llamado a las sobrecargas con la escritura de la secuencia de comandos CharSequence e hicieron que los antiguos métodos de escritura también devolvieran al escritor? – Svish

+3

@Svish, Eso rompería la compatibilidad con versiones anteriores.Cuando se compila el código, el tipo de devolución forma parte de la firma del código de bytes y no podrá usar el nuevo método sin volver a compilar el código desde la fuente. También puede reemplazar 'write (int)' con 'write (char)' en Java (que algunos códigos cambian) pero definitivamente necesita volver a compilarlo. Sugeriría que use 'append' si no tiene preferencia. La razón por la que tiene este nombre es ser consistente con StringBuffer, que siempre usaba append. StringBuilder/StringBuffer/Writer comparten la interfaz Appendable ahora. –

5

Append() puede tomar un CharSequence, mientras toma una write()String.

Desde String es una implementación de CharSequence, también puede pasar String a append(). Pero también puede pasar un StringBuilder o StringBuffer a append, que no se puede hacer con write().

1

Writer.append(c) devuelve la instancia del escritor. Por lo tanto, puede encadenar varias llamadas para agregar, p. Ej. out.append("Hello").append("World");

1

Me parece que es un subproducto de la interfaz Appendablejava.io.Writer cual implementa con el fin de proporcionar compatibilidad con java.util.Formatter. Como ha señalado, la documentación señala que para el java.io.Writer no existe una diferencia práctica entre los dos métodos.

5

Como se puede ver en la documentación, anexar también devuelve el escritor que acaba de escribir de manera que se pueden realizar múltiples anexa tales como:

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