L'interface Java.io.Writer a deux méthodes appelées append et write. Quelles sont les différences entre ces deux? Il dit même que
Un appel de cette méthode de la forme
out.append(c)
se comporte exactement de la même manière que l'invocationout.write(c)
alors, quelle est la raison d'avoir deux variantes de nom de méthode?
Il existe des différences mineures entre append () et write (). Tout cela, vous pouvez travailler en lisant les Javadocs. Allusion. ;)
void
write est un format de style plus ancien créé avant que CharSequence ne soit disponible.
Ces méthodes sont surchargées de sorte qu'il y a un
write(int)
où le int
est converti en caractère. append(char)
doit être de type char.write(char[] chars)
prend un tableau de char, il n'y a pas d'équivalent append ().Probablement pour se conformer à l'interface Appendable: http://download.Oracle.com/javase/6/docs/api/Java/lang/Appendable.html
Append()
peut prendre un CharSequence
, tandis que write()
prend un String
.
Puisque String
est une implémentation de CharSequence
, vous pouvez également passer un String
à append()
. Mais vous pouvez aussi passer un StringBuilder
ou StringBuffer
à append
, ce que vous ne pouvez pas faire avec write()
.
Comme vous pouvez le voir dans la documentation, append renvoie également le Writer dans lequel vous venez d'écrire afin que vous puissiez effectuer plusieurs ajouts tels que:
out.append(a).append(b).append(c)
Writer.append(c)
renvoie l'instance de Writer. Ainsi, vous pouvez enchaîner plusieurs appels à ajouter, par exemple out.append("Hello").append("World")
;
Il me semble que c'est un sous-produit de l'interface Appendable
qui Java.io.Writer
implémente afin d'assurer la compatibilité avec Java.util.Formatter
. Comme vous l'avez noté, la documentation indique que pour Java.io.Writer
il n'y a pas de différence pratique entre les deux méthodes.