2015-12-15 14 views

Odpowiedz

7

Czytanie przez javadocs Nie widzę żadnego konkretnego powodu, dla którego nie podano metody writeLine(). Dzięki dostarczonym metodom write BufferedWriter będzie buforował znaki przed zapisaniem w celu zwiększenia wydajności. Dostarczenie nowej metody writeLine() nie doda żadnej wartości, ponieważ strumień znaków zapewniony w tej wyimaginowanej metodzie będzie buforowany i zapisywany tylko wtedy, gdy bufor jest pełny.

Można przełączyć na klasę PrintWriter zamiast BufferedWriter, ponieważ zapewnia ona metodę println(String str), której można użyć napisać ciąg i znak nowej linii. Jest to jednak nieefektywne w porównaniu do BufferedWriter i lepiej jest używać tego tylko wtedy, gdy chcesz, aby twój plik wyjściowy miał ciągi napisane bezpośrednio po wywołaniu metody println().

Z klasą BufferedWriter z powodów wymienionych w here najlepszym sposobem jest użycie metod write() i newLine().

Aby wykorzystać zalety BufferedWriter i mieć dostęp do println() metodzie, można wykonać poniżej jak zasugerowano w javadocs:

PrintWriter out = new PrintWriter(new BufferedWriter(new FileWriter("foo.out"))); 
out.println("Hello World!"); 
+1

To nie jest odpowiedź na pytanie. – YoungHobbit

+0

Wiem, że muszę to zrobić, ale właśnie zastanawiałem się, dlaczego nie ma wygodnej metody na zrobienie tego w jednym wywołaniu. Inne języki, które znam, takie jak C#, mają to. –

+0

@ 0ne_Up - Sprawdziłem i nie mogłem znaleźć odpowiednika writeLine() w klasie BufferedStream na C# https://msdn.microsoft.com/en-us/library/system.io.bufferedstream_methods(v=vs.90). aspx. Czy możesz dać mi znać, do której klasy się odwołujesz? – vk239