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

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