Java OutputStreamWriter (példákkal)

Ebben az oktatóanyagban példák segítségével megismerhetjük a Java OutputStreamWritert és annak módszereit.

A csomag OutputStreamWriterosztálya java.iofelhasználható a karakteres adatok konvertálására bájt formátumú adatokká.

Kiterjeszti az absztrakt osztályt Writer.

Az OutputStreamWriterosztály más kimeneti adatfolyamokkal működik. Hídként is ismert a bájtfolyamok és a karakterfolyamok között. Ennek az az oka, OutputStreamWriterhogy karaktereit bájtokká alakítja.

Egyes karakterek például 2 bájtot igényelnek a tárolóban. Ilyen adatok megírásához használhatjuk a kimeneti adatfolyam írót, amely a karaktert megfelelő bájtokká alakítja és együtt tárolja a bájtokat.

Hozzon létre egy OutputStreamWritert

A létrehozásához először OutputStreamWriterimportálnunk kell a java.io.OutputStreamWritercsomagot. A csomag importálása után itt hozhatjuk létre az output stream írót.

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

A fenti példában létrehoztunk egy OutputStreamWritermegnevezett kimenetet a FileOutputStreammegnevezett fájllal együtt.

Itt az alapértelmezett karakterkódolást használjuk karakterek írására a kimeneti adatfolyamba.

Megadhatjuk azonban az adatíráshoz használandó karakterkódolás típusát ( UTF8 vagy UTF16 ).

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

Itt az Charsetosztályt használtuk a karakterkódolás típusának megadására.

Az OutputStreamWriter módszerei

Az OutputStreamWriterosztály megvalósításokat biztosít az Writerosztályban jelen lévő különböző módszerek számára .

write () módszer

  • write() - egyetlen karaktert ír az írónak
  • write(char() array) - írja a karaktereket a megadott tömbből az írónak
  • write(String data) - írja a megadott karakterláncot az írónak

Példa: OutputStreamWriter adatok írására egy fájlba

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

A fenti példában létrehoztunk egy kimeneti adatfolyam-olvasót a fájl kimeneti adatfolyamának felhasználásával. A kimeneti adatfolyam-olvasó össze van kapcsolva az output.txt fájllal.

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

Adatok írására a fájlba a write()módszert használtuk .

Itt, amikor futtatjuk a programot, az output.txt fájl a következő tartalommal töltődik fel.

 This is a line of text inside the file. 

getEncoding () metódus

A getEncoding()módszer felhasználható arra, hogy megkapja azt a kódolási típust, amellyel adatokat írunk a kimeneti adatfolyamba. Például,

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

Kimenet

 Az output1 karakterkódolása: Cp1252 A output2 karakterkódolása: UTF8 

A fenti példában létrehoztunk 2 output1 írót output1 és output2 néven.

  • Az output1 nem adja meg a karakterkódolást. Ezért a getEncoding()metódus az alapértelmezett karakterkódolást adja vissza.
  • Az output2 megadja az UTF8 karakterkódolást . Ezért a getEncoding()metódus visszaadja a megadott karakterkódolást.

Megjegyzés : A Charset.forName()karakterkódolás típusának meghatározásához a módszert használtuk . További információkért látogasson el a Java Charset (hivatalos Java dokumentáció) oldalra.

bezár () módszer

A kimeneti adatfolyam író bezárásához használhatjuk a close()módszert. Miután close()meghívta a módszert, nem használhatjuk az írót az adatok megírásához.

Az OutputStreamWriter egyéb módszerei

Módszer Leírás
flush() arra kényszeríti, hogy az íróban található összes adatot a megfelelő rendeltetési helyre írja
append() beszúrja a megadott karaktert az aktuális íróba

További információkért látogasson el a Java OutputStreamWriter oldalra (hivatalos Java dokumentáció).

érdekes cikkek...