Dlaczego klasa BufferedReader
ma metodę readLine()
, ale klasa BufferedWriter
nie ma metody writeLine(String)
? Teraz musimy zrobić write(str + "\n")
lub write(str)
i newLine()
.Metoda klasy linii zapisu BufferedWriter
Odpowiedz
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. Java BufferedWriter, OutputStreamWriter możliwość zapisu zamkniętym FileOutputStream
- 2. Która metoda zapisu MagicalRecord
- 3. Java - nie zastępuj bufferedwriter
- 4. metoda zapisu CRUDRepository jest bardzo powolna?
- 5. Najszybszy sposób zapisu do pliku?
- 6. C++. metoda klasy Wskaźniki
- 7. Wywołanie klasy bazowej metoda
- 8. addFirst metoda ArrayDeque klasy
- 9. Metoda łamanie długiej linii zdanie
- 10. Jedna definicja klasy linii?
- 11. Metoda klasy wywołań z innej klasy
- 12. Metoda klasy "Znać" nazwę klasy w Ruby?
- 13. połączeń Python metody klasy z linii poleceń
- 14. Zastępowanie metoda __contains__ dla klasy
- 15. Metoda klasy języka Python Wrap
- 16. metoda klasy __instancecheck__ nie działa
- 17. Zadzwoń Super metoda klasy automatycznie
- 18. Niezdefiniowany metoda klasy w rspec
- 19. strtotime() Metoda analogowa klasy DateTime
- 20. Wyjątek FileNotFound podczas próby zapisu do pliku
- 21. Algorytm zapisu ograniczonej liczby linii do pliku tekstowego
- 22. zapisu do portu szeregowego z linii poleceń Linuksa
- 23. Wydajna metoda narysowania linii z milionami punktów
- 24. Python: metoda Podział wezwanie do wielu linii
- 25. Inicjalizacja klasy Ruby (konstruktor) to metoda prywatna lub metoda publiczna?
- 26. Czy metoda rezygnuje z klasy AuthorizeAttribute na poziomie klasy?
- 27. Co oznacza "metoda klasy #" w ruby?
- 28. celem-c domyślna metoda init dla klasy?
- 29. metoda klasy w JavaScript nie jest funkcją
- 30. Dynamicznie wywołująca metoda i nazwa klasy
To nie jest odpowiedź na pytanie. – YoungHobbit
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. –
@ 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