In diesem Tutorial lernen wir anhand von Beispielen Java OutputStreamWriter und seine Methoden kennen.
Die OutputStreamWriter
Klasse des java.io
Pakets kann verwendet werden, um Daten in Zeichenform in Daten in Byteform umzuwandeln.
Es erweitert die abstrakte Klasse Writer
.
Die OutputStreamWriter
Klasse arbeitet mit anderen Ausgabestreams. Es ist auch als Brücke zwischen Byte-Streams und Zeichen-Streams bekannt. Dies liegt daran, dass der OutputStreamWriter
seine Zeichen in Bytes konvertiert.
Beispielsweise erfordern einige Zeichen, dass 2 Bytes im Speicher gespeichert werden. Um solche Daten zu schreiben, können wir den Ausgabestream-Writer verwenden, der das Zeichen in entsprechende Bytes konvertiert und die Bytes zusammen speichert.
Erstellen Sie einen OutputStreamWriter
Um ein zu erstellen OutputStreamWriter
, müssen wir java.io.OutputStreamWriter
zuerst das Paket importieren . Sobald wir das Paket hier importiert haben, können wir den Ausgabestream-Writer erstellen.
// Creates an OutputStream FileOutputStream file = new FileOutputStream(String path); // Creates an OutputStreamWriter OutputStreamWriter output = new OutputStreamWriter(file);
Im obigen Beispiel haben wir eine OutputStreamWriter
benannte Ausgabe zusammen mit der FileOutputStream
benannten Datei erstellt.
Hier verwenden wir die Standardzeichencodierung, um Zeichen in den Ausgabestream zu schreiben.
Wir können jedoch die Art der Zeichenkodierung ( UTF8 oder UTF16 ) angeben, die zum Schreiben von Daten verwendet werden soll.
// Creates an OutputStreamWriter specifying the character encoding OutputStreamWriter output = new OutputStreamWriter(file, Charset cs);
Hier haben wir die Charset
Klasse verwendet, um den Typ der Zeichenkodierung anzugeben.
Methoden von OutputStreamWriter
Die OutputStreamWriter
Klasse bietet Implementierungen für verschiedene in der Writer
Klasse vorhandene Methoden .
write () Methode
write()
- schreibt ein einzelnes Zeichen an den Verfasserwrite(char() array)
- schreibt die Zeichen aus dem angegebenen Array in den Writerwrite(String data)
- schreibt die angegebene Zeichenfolge in den Writer
Beispiel: OutputStreamWriter zum Schreiben von Daten in eine Datei
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(); ) ) )
Im obigen Beispiel haben wir einen Ausgabestream-Reader mit dem Dateiausgabestream erstellt. Der Ausgabestream-Reader ist mit der Datei output.txt verknüpft .
FileOutputStream file = new FileOutputStream("output.txt"); OutputStreamWriter output = new OutputStreamWriter(file);
Um Daten in die Datei zu schreiben, haben wir die write()
Methode verwendet.
Wenn wir das Programm ausführen , wird die Datei output.txt mit dem folgenden Inhalt gefüllt.
This is a line of text inside the file.
getEncoding () -Methode
Die getEncoding()
Methode kann verwendet werden, um den Codierungstyp abzurufen, der zum Schreiben von Daten in den Ausgabestream verwendet wird. Beispielsweise,
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(); ) ) )
Ausgabe
Die Zeichenkodierung von output1: Cp1252 Die Zeichenkodierung von output2: UTF8
Im obigen Beispiel haben wir zwei Ausgabestream-Writer mit den Namen output1 und output2 erstellt.
- output1 gibt die Zeichenkodierung nicht an. Daher gibt die
getEncoding()
Methode die Standardzeichenkodierung zurück. - output2 gibt die Zeichenkodierung UTF8 an . Daher gibt die
getEncoding()
Methode die angegebene Zeichenkodierung zurück.
Hinweis : Wir haben die Charset.forName()
Methode verwendet, um den Typ der Zeichenkodierung anzugeben. Weitere Informationen finden Sie unter Java Charset (offizielle Java-Dokumentation).
close () Methode
Um den Ausgabestream-Writer zu schließen, können wir die close()
Methode verwenden. Sobald die close()
Methode aufgerufen wurde, können wir den Writer nicht mehr zum Schreiben der Daten verwenden.
Andere Methoden von OutputStreamWriter
Methode | Beschreibung |
---|---|
flush() | Erzwingt das Schreiben aller im Writer vorhandenen Daten an das entsprechende Ziel |
append() | Fügt das angegebene Zeichen in den aktuellen Writer ein |
Weitere Informationen finden Sie unter Java OutputStreamWriter (offizielle Java-Dokumentation).