Pourquoi le BufferedReader
classe ont un readLine()
méthode, mais la BufferedWriter
de classe n'ont pas de writeLine(String)
méthode? Maintenant que nous avons à faire write(str + "\n")
ou write(str)
et newLine()
.
OriginalL'auteur 0ne_Up | 2015-12-15
Lecture par le biais de la documentation javadoc je ne vois pas de raison particulière pour un
writeLine()
méthode n'est pas fournie. Avec lewrite
méthodes BufferedWriter sera tampon de caractères avant d'écrire pour des raisons d'efficacité. Fournir une nouvellewriteLine()
méthode n'ajoute aucune valeur puisque le flux de caractères fournies dans cet imaginairewriteLine
méthode sera mise en mémoire tampon et écrite que lorsque le tampon est plein.Vous pouvez passer à PrintWriter classe au lieu de BufferedWriter car il fournit
println(String str)
méthode qui peut être utilisée écrire une chaîne de caractères et un caractère de saut de ligne. Mais c'est inefficace lorsque comparé à BufferedWriter et il est préférable d'utiliser uniquement lorsque vous souhaitez que votre fichier de sortie pour les chaînes écrit immédiatement à l'appel de la println() la méthode.Avec
BufferedWriter
classe pour les raisons mentionnées dans ici meilleure approche est d'utiliserwrite()
etnewLine()
méthodes.De tirer parti des avantages de
BufferedWriter
et d'avoir accès àprintln()
méthode, vous pouvez le faire ci-dessous comme suggéré dans la documentation javadoc:Je sais que je dois faire, mais je me demandais juste pourquoi il n'existe pas de méthode pratique pour le faire en un seul appel. D'autres langues que je connais comme le C# n'ont que.
J'ai levé les yeux et ne pouvait pas trouver un writeLine() équivalent en BufferedStream classe de C# msdn.microsoft.com/en-us/library/.... Pouvez-vous m'indiquer la classe à laquelle vous faites référence ?
StreamWriter, PrintWriter par exemple. msdn.microsoft.com/en-us/library/...
Mais je ne savais pas à propos de
PrintWriter
en java, merci pour l'explication. Mais pourquoiBufferedWriter.writeLine()
pas ajouter de la valeur? Si il est écrit lorsque la mémoire est pleine, ou lorsque leflush
méthode est appelée, vous auriez encore à l'appel de moins en moins de moyens.OriginalL'auteur vk239
De https://docs.oracle.com/javase/7/docs/api/java/io/BufferedWriter.html
OriginalL'auteur Max Dribinsky