Они не имеют ничего общего друг с другом.По правде говоря, я редко использую PrintWriter
, кроме как для временного преобразования System.out
.Но в любом случае.
BufferedWriter
, как и BufferedReader
/ BufferedInputStream
/ BufferedOutputStream
, просто украшает вложенный Writer
буфером памяти (вы можете указать размер) или принимаете значение по умолчанию.Это очень полезно при записи на медленных писателей, таких как сеть или файл.(Материал записывается в память и, например, только на диск). За счет буферизации в памяти скорость значительно увеличивается - попробуйте написать код, записывающий файл размером 10 МБ, с помощью FileWriter
, а затем сравните с тем же с BufferedWriter
обернутый вокруг этого.
Так что BufferedWriter
.Он добавляет несколько удобных методов, но в основном он просто обеспечивает этот буфер памяти.
PrintWriter
в основном это простой декоратор, который добавляет некоторые специфические методы записи для различных типов, таких как String
, float
и т. Д., поэтому вам не нужно конвертировать все в необработанные байты.
Отредактировано:
Это уже появилось