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).

Цікаві статті...