Java OutputStreamWriter (s príkladmi)

V tomto výučbe sa pomocou príkladov dozvieme o prostredí Java OutputStreamWriter a jeho metódach.

OutputStreamWriterTrieda java.ioobalu možno použiť pre prevod dát vo forme znaku do dát v bytoch forme.

Rozširuje abstraktnú triedu Writer.

OutputStreamWriterTrieda spolupracuje s inými výstupnými prúdmi. Je tiež známy ako most medzi prúdmi bajtov a prúdmi znakov. Je to preto, lebo OutputStreamWriterprevádza jeho znaky na bajty.

Niektoré znaky napríklad vyžadujú, aby boli v úložisku uložené 2 bajty. Na zápis takýchto údajov môžeme použiť zapisovač výstupného toku, ktorý prevádza znak na zodpovedajúce bajty a bajty spolu ukladá.

Vytvorte OutputStreamWriter

Aby sme mohli vytvoriť OutputStreamWriter, musíme najskôr importovať java.io.OutputStreamWriterbalík. Po importovaní balíka tu môžeme vytvoriť zapisovač výstupného toku.

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

Vo vyššie uvedenom príklade sme vytvorili OutputStreamWriterpomenovaný výstup spolu s FileOutputStreampomenovaným súborom.

Tu používame predvolené kódovanie znakov na zápis znakov do výstupného toku.

Môžeme však určiť typ kódovania znakov ( UTF8 alebo UTF16 ), ktoré sa majú použiť na zápis údajov.

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

Tu sme pomocou Charsettriedy zadali typ kódovania znakov.

Metódy OutputStreamWriter

OutputStreamWriterTrieda poskytuje implementácie pre rôzne metódy prezentovať vo Writertriede.

metóda write ()

  • write() - napíše spisovateľovi jednu postavu
  • write(char() array) - zapíše znaky zo zadaného poľa do zapisovača
  • write(String data) - zapíše zadaný reťazec do zapisovača

Príklad: OutputStreamWriter na zápis údajov do súboru

 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(); ) ) ) 

Vo vyššie uvedenom príklade sme vytvorili výstupný prúd čítačky pomocou výstupného toku súborov. Čítačka výstupného toku je prepojená so súborom output.txt .

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

Na zápis údajov do súboru sme použili write()metódu.

Tu, keď spustíme program, je súbor output.txt naplnený nasledujúcim obsahom.

 This is a line of text inside the file. 

metóda getEncoding ()

Túto getEncoding()metódu je možné použiť na získanie typu kódovania, ktoré sa používa na zápis údajov do výstupného toku. Napríklad,

 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(); ) ) ) 

Výkon

 Kódovanie znakov výstupu1: Cp1252 Kódovanie znakov výstupu2: UTF8 

Vo vyššie uvedenom príklade sme vytvorili 2 zapisovače výstupných prúdov s názvom output1 a output2.

  • output1 neurčuje kódovanie znakov. Preto getEncoding()metóda vracia predvolené kódovanie znakov.
  • output2 určuje kódovanie znakov, UTF8 . Preto getEncoding()metóda vracia zadané kódovanie znakov.

Poznámka : Túto Charset.forName()metódu sme použili na určenie typu kódovania znakov. Ak sa chcete dozvedieť viac, navštívte Java Charset (oficiálna dokumentácia Java).

metóda close ()

Na uzavretie zapisovača výstupného toku môžeme použiť túto close()metódu. Po close()zavolaní metódy nemôžeme použiť zapisovač na zápis údajov.

Ďalšie metódy programu OutputStreamWriter

Metóda Popis
flush() núti zapisovať všetky dáta prítomné v zapisovači na príslušné miesto určenia
append() vloží zadaný znak do aktuálneho zapisovača

Ak sa chcete dozvedieť viac, navštívte Java OutputStreamWriter (oficiálna dokumentácia Java).

Zaujímavé články...