Java OutputStreamWriter (с примерами)

В этом руководстве мы узнаем о Java OutputStreamWriter и его методах с помощью примеров.

OutputStreamWriterКласс java.ioпакета может использоваться для данных преобразовывают в виде символов в данные в байтах формы.

Он расширяет абстрактный класс Writer.

OutputStreamWriterКласс работает с другими выходными потоками. Он также известен как мост между потоками байтов и потоками символов. Это потому, что OutputStreamWriterконвертирует свои символы в байты.

Например, для некоторых символов требуется 2 байта для хранения в хранилище. Для записи таких данных мы можем использовать средство записи выходного потока, которое преобразует символ в соответствующие байты и сохраняет байты вместе.

Создайте OutputStreamWriter

Чтобы создать файл OutputStreamWriter, мы должны java.io.OutputStreamWriterсначала импортировать пакет. После того, как мы импортируем пакет, вот как мы можем создать средство записи выходного потока.

 // Creates an OutputStream FileOutputStream file = new FileOutputStream(String path); // Creates an OutputStreamWriter OutputStreamWriter output = new OutputStreamWriter(file); 

В приведенном выше примере мы создали OutputStreamWriterименованный вывод вместе с FileOutputStreamименованным файлом.

Здесь мы используем кодировку символов по умолчанию для записи символов в выходной поток.

Однако мы можем указать тип кодировки символов ( UTF8 или UTF16 ), который будет использоваться для записи данных.

 // Creates an OutputStreamWriter specifying the character encoding OutputStreamWriter output = new OutputStreamWriter(file, Charset cs); 

Здесь мы использовали Charsetкласс, чтобы указать тип кодировки символов.

Методы OutputStreamWriter

OutputStreamWriterКласс обеспечивает реализации для различных методов представления в Writerклассе.

write () Метод

  • write() - пишет писателю одиночный персонаж
  • write(char() array) - записывает символы из указанного массива в писатель
  • write(String data) - записывает указанную строку в писатель

Пример: OutputStreamWriter для записи данных в файл

 import java.io.FileOutputStream; import java.io.OutputStreamWriter; public class Main ( public static void main(String args()) ( String data = "This is a line of text inside the file."; try ( // Creates a FileOutputStream FileOutputStream file = new FileOutputStream("output.txt"); // Creates an OutputStreamWriter OutputStreamWriter output = new OutputStreamWriter(file); // Writes string to the file output.write(data); // Closes the writer output.close(); ) catch (Exception e) ( e.getStackTrace(); ) ) ) 

В приведенном выше примере мы создали средство чтения потока вывода, используя поток вывода файла. Средство чтения выходного потока связано с файлом output.txt .

 FileOutputStream file = new FileOutputStream("output.txt"); OutputStreamWriter output = new OutputStreamWriter(file); 

Для записи данных в файл мы использовали write()метод.

Здесь, когда мы запускаем программу, файл output.txt заполняется следующим содержимым.

 This is a line of text inside the file. 

getEncoding () Метод

getEncoding()Метод может быть использован , чтобы получить тип кодирования, используемый для записи данных в выходной поток. Например,

 import java.io.OutputStreamWriter; import java.nio.charset.Charset; import java.io.FileOutputStream; class Main ( public static void main(String() args) ( try ( // Creates an output stream FileOutputStream file = new FileOutputStream("output.txt"); // Creates an output stream reader with default encoding OutputStreamWriter output1 = new OutputStreamWriter(file); // Creates an output stream reader specifying the encoding OutputStreamWriter output2 = new OutputStreamWriter(file, Charset.forName("UTF8")); // Returns the character encoding of the output stream System.out.println("Character encoding of output1: " + output1.getEncoding()); System.out.println("Character encoding of output2: " + output2.getEncoding()); // Closes the reader output1.close(); output2.close(); ) catch(Exception e) ( e.getStackTrace(); ) ) ) 

Вывод

 Кодировка символов вывода1: Cp1252 Кодировка символов вывода2: UTF8 

В приведенном выше примере мы создали 2 модуля записи выходного потока с именами output1 и output2.

  • output1 не указывает кодировку символов. Следовательно, getEncoding()метод возвращает кодировку символов по умолчанию.
  • output2 указывает кодировку символов UTF8 . Следовательно, getEncoding()метод возвращает указанную кодировку символов.

Примечание . Мы использовали этот Charset.forName()метод, чтобы указать тип кодировки символов. Чтобы узнать больше, посетите Java Charset (официальная документация по Java).

close () Метод

Чтобы закрыть средство записи выходного потока, мы можем использовать close()метод. После вызова close()метода мы не можем использовать средство записи для записи данных.

Другие методы OutputStreamWriter

Метод Описание
flush() заставляет записать все данные, имеющиеся в писателе, в соответствующее место назначения
append() вставляет указанный символ в текущий писатель

Чтобы узнать больше, посетите Java OutputStreamWriter (официальная документация Java).

Интересные статьи...