Java OutputStreamWriter (s příklady)

V tomto výukovém programu se na příkladech seznámíme s Java OutputStreamWriter a jeho metodami.

OutputStreamWriterTřída java.ioobalu lze použít pro převod dat ve formě znaku do dat v bytech formě.

Rozšiřuje abstraktní třídu Writer.

OutputStreamWriterTřída spolupracuje s jinými výstupními proudy. Je také známý jako most mezi bajtovými a znakovými toky. Je to proto, že OutputStreamWriterpřevádí své znaky na bajty.

Některé znaky například vyžadují, aby byly v úložišti uloženy 2 bajty. K zápisu takových dat můžeme použít zapisovač výstupního proudu, který převádí znak na odpovídající bajty a bajty společně ukládá.

Vytvořte OutputStreamWriter

Abychom mohli vytvořit OutputStreamWriter, musíme java.io.OutputStreamWriternejprve importovat balíček. Jakmile importujeme balíček, je zde způsob, jak můžeme vytvořit zapisovač výstupního proudu.

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

Ve výše uvedeném příkladu jsme vytvořili OutputStreamWriterpojmenovaný výstup spolu s FileOutputStreampojmenovaným souborem.

Zde používáme výchozí kódování znaků k zápisu znaků do výstupního proudu.

Můžeme však určit typ kódování znaků ( UTF8 nebo UTF16 ), který se má použít k zápisu dat.

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

Zde jsme použili Charsettřídu k určení typu kódování znaků.

Metody OutputStreamWriter

OutputStreamWriterTřída poskytuje implementace pro různé metody prezentovat ve Writertřídě.

metoda write ()

  • write() - zapíše spisovateli jeden znak
  • write(char() array) - zapíše znaky ze zadaného pole do zapisovače
  • write(String data) - zapíše zadaný řetězec do zapisovače

Příklad: OutputStreamWriter pro zápis dat do souboru

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

Ve výše uvedeném příkladu jsme vytvořili čtečku výstupního proudu pomocí výstupního proudu souboru. Čtečka výstupního proudu je propojena se souborem output.txt .

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

K zápisu dat do souboru jsme použili write()metodu.

Tady, když spustíme program, je soubor output.txt naplněn následujícím obsahem.

 This is a line of text inside the file. 

Metoda getEncoding ()

getEncoding()Způsob může být použit k získání typ kódování, které se používá k zápisu dat do výstupního proudu. Napří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ýstup

 Kódování znaků výstupu1: Cp1252 Kódování znaků výstupu2: UTF8 

Ve výše uvedeném příkladu jsme vytvořili 2 zapisovač výstupního proudu s názvem output1 a output2.

  • output1 neurčuje kódování znaků. Proto getEncoding()metoda vrací výchozí kódování znaků.
  • output2 určuje kódování znaků, UTF8 . Proto getEncoding()metoda vrací zadané kódování znaků.

Poznámka : Charset.forName()Metodu jsme použili k určení typu kódování znaků. Chcete-li se dozvědět více, navštivte Java Charset (oficiální dokumentace Java).

metoda close ()

Chcete-li zavřít zapisovač výstupního proudu, můžeme použít close()metodu. Jakmile je close()metoda volána, nemůžeme použít zapisovač k zápisu dat.

Další metody OutputStreamWriter

Metoda Popis
flush() nutí zapsat všechna data přítomná ve vypalovačce do odpovídajícího cíle
append() vloží zadaný znak do aktuálního zapisovače

Další informace najdete v Java OutputStreamWriter (oficiální dokumentace Java).

Zajímavé články...