Запись в файл: разница между потоком и записывающим устройством

Привет у меня есть немного путаницы о потоке, чтобы использовать для записи в текстовом файле

Я видел несколько примеров:

один использовать поток PrintWriter

PrintWriter out = new PrintWriter(new BufferedWriter(new FileWriter(fname)));

out.println(/*something to write*/);

out.close();

вместо этого используйте:

PrintStream out = new PrintStream(new FileOutputStream(fname));

out.println(/*something to write*/)

но какая разница? оба пишут в файл с одинаковым результатом?

3 ответа

Решение

PrintWriter является новым с Java 1.1; это более способно, чем PrintStream учебный класс. Вы должны использовать PrintWriter вместо PrintStream потому что он использует схему кодирования по умолчанию для преобразования символов в байты для базового OutputStream, Конструкторы для PrintStream устарели в Java 1.1. Фактически весь класс, вероятно, был бы устаревшим, за исключением того, что он генерировал бы много предупреждений компиляции для кода, который использует System.out а также System.err,

PrintWriter для написания текста, тогда как PrintStream для записи данных - необработанные байты. PrintWriter может изменить кодировку байтов, чтобы упростить обработку текста, что может повредить ваши данные.

PrintWriter расширяет класс Writerкласс думал написать персонажей, в то время как PrintStream инвентарь OutputStreamинтерфейс для более общих выводов.

Другие вопросы по тегам