В этом руководстве мы узнаем о 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).