OutputStreamWriter ist eine Klasse in der Klasse java.io, die für die Konvertierung eines Zeichenstroms in einen Bytestrom nützlich ist. Diese Konvertierung von Zeichen in Bytes erfolgt mithilfe der angegebenen Zeichensatzkodierung. Es enthält eine write()-Methode, die den Codierungskonverter aufruft, um ein Zeichen in einen Bytestrom umzuwandeln, von dem aus die resultierenden Bytes in den Puffer gesendet werden, wo sie akkumuliert und an den Ausgabestream gesendet werden. Die Zeichen werden ohne Pufferung an die write()-Methode übergeben, was zu häufigen Konverteraufrufen führt und daher mit BufferedWriter verwendet wird.
Starten Sie Ihren kostenlosen Softwareentwicklungskurs
Webentwicklung, Programmiersprachen, Softwaretests und andere
Syntax:
public class OutputStreamWriter extends Writer
Diese Syntax zeigt, dass es sich um eine öffentliche Klasse handelt, was bedeutet, dass sie von überall im Projekt instanziiert werden kann. Diese Klasse ist eine direkte Unterklasse einer abstrakten Klasse – der Writer-Klasse, die sich mit dem Schreiben in die Zeichenströme befasst.
Um eine Instanz der OutputStreamWriter-Klasse zu erstellen, haben wir die folgenden 4 Arten von Konstruktoren:
Dieser Konstruktor gibt eine Instanz von OutputStreamWriter mit Standardzeichenkodierung zurück. Dies ist der einfachste Weg, eine Instanz zu erstellen.
Beispiel:
FileOutputStream fileObj = new FileOutputStream (String path); //
Dies ist eine Instanz von OutputStream.
OutputStreamWriter output = new OutputStreamWriter (fileObj);//
Die obige Instanz wird als Argument übergeben, um die Datei anzugeben, in die die Ausgabe geschrieben werden muss.
Dieser Konstruktor gibt eine Instanz von OutputStreamWriter zurück, die den angegebenen Zeichensatz verwendet. Der hier angegebene Zeichensatz kann wie Charset.forName („UTF8“) sein und eine Instanz des Zeichensatzes als Argument für die Methode erstellen.
Beispiel:
OutputStreamWriter output = new OutputStreamWriter (fileObj,Charset.forName ( "UTF8"));
Dieser Konstruktor gibt eine Instanz von OutputStreamWriter zurück, die den angegebenen Charset-Encoder verwendet.
Beispiel:
CharsetEncoderencoder = B2CConverter.UTF_8.newEncoder () OutputStreamWriter output = new OutputStreamWriter (fileObj, encoder);
Dieser Konstruktor gibt eine Instanz von OutputStreamWriter zurück, die den angegebenen Zeichensatznamen verwendet.
Beispiel:
OutputStreamWriter output = new OutputStreamWriter (fileObj,"UTF-8");
Hier ist der Zeichensatzname, der zum Konvertieren eines Zeichenstroms in den Bytestrom verwendet wird, „UTF-8“.
1. close (): – Diese Methode hilft, den Stream nach dem Leeren zu schließen. Es ist kein Parameter erforderlich und von dieser Methode wird nichts zurückgegeben.
Syntax
public void close ()
2. Flush (): – Diese Methode hilft, den Stream zu leeren. Es ist kein Parameter erforderlich und von dieser Methode wird nichts zurückgegeben.
Syntax
public void flush ()
3. getEncoding (): – Diese Methode hilft beim Abrufen des Namens der Zeichensatzkodierung, die von der angegebenen Instanz von OutputStreamWriter verwendet wird. Beim Aufruf der Methode muss kein Parameter übergeben werden.
Syntax
public String getEncoding ()
Die Zeichenfolgendarstellung des Namens der von der Instanz verwendeten Codierung wird zurückgegeben.
4. write (char[] charbuf, int off, int len): – Diese Methode hilft beim Schreiben eines bestimmten Teils eines Arrays von Zeichen, das an der Offset-Position beginnt und dessen Länge „len“ ist. Diese Methode löst in diesem Fall eine IOException aus Jede Eingabe ist falsch oder null.
Syntax
public void write (char[] charbuf, int off, int len)
Diese Methode schreibt einfach den konvertierten Bytestream in die Ausgabedatei. Es gibt nichts zurück.
5. write (int ch): – Diese Methode wird verwendet, um ein einzelnes Zeichen in den Stream zu schreiben und dabei sein ASCII-Zeichen anzugeben. Diese Methode löst eine IOException aus, falls eine Eingabe falsch oder null ist.
Syntax
public void write (int ch)
Diese Methode schreibt einfach den konvertierten Bytestream in die Ausgabedatei. Es gibt nichts zurück.
6. write(String str, int off, int len): – Diese Methode wird verwendet, um einen Teil eines Strings beginnend mit dem angegebenen Offset und der angegebenen Länge in den Stream zu schreiben.
Syntax
public void write (String strObj, int offset, int lgth)
This method just writes the converted byte stream to the output file. It does not return anything.
Below the examples of Java OutputStreamWriter:
import java.io.*; public class StreamDemo { public static void main (String[] args) { String data = "LetsLearnOuptputStreamClass"; try { OutputStream file = new FileOutputStream ("abc.txt"); OutputStreamWriter outObj = new OutputStreamWriter (file); FileInputStream inFileObj = new FileInputStream ("abc.txt"); outObj.write (data, 5, 6); outObj.flush (); System.out.println ( "Name of Encoding used here is : " + outObj.getEncoding ()); for (int i = 0; i<6; i++) { System.out.println ( "Character written is : " + (char) inFileObj.read()); } outObj.close (); } catch (Exception ex) { System.out.println ( "Error Occurred"); ex.printStackTrace (); } } }
Output:
import java.io.*; public class StreamDemo { public static void main (String[] args) { try { OutputStream g = new FileOutputStream ( "C:/Users/savij/Desktop/abc.txt"); OutputStreamWriter outObj = new OutputStreamWriter (g); FileInputStream in = new FileInputStream ( "C:/Users/savij/Desktop/abc.txt"); outObj.write (69); outObj.write (68); outObj.write (85); outObj.write (67); outObj.write (66); outObj.write (65); outObj.flush (); for (int i = 0; i< 6; i++) { System.out.println ( "The char being written: " + (char) in.read()); } outObj.close (); } catch (Exception ex) { System.out.println ( "Error"); ex.printStackTrace (); } } }
Output:
//package Proc; import java.io.*; public class StreamDemo { public static void main (String[] args) { char[] data = {'E','D','U','C','B','A'}; try { OutputStream file = new FileOutputStream ( "abc.txt"); OutputStreamWriter outObj = new OutputStreamWriter (file); FileInputStream inFileObj = new FileInputStream ( "abc.txt"); outObj.write (data,2, 4); outObj.flush (); for (int i = 0; i<4; i++) { System.out.println ( "Character written is : " + (char) inFileObj.read()); } outObj.close (); } catch (Exception ex) { System.out.println ( "Error Occurred"); ex.printStackTrace (); } } }
Output:
OutputStreamWriter is a utility that acts as a bridge from the character stream to a byte stream. It contains a write method that takes input in the form of characters and converts them into bytes using the specified charset or charset encoder for e.g., UTF-8. This class’s efficiency and performance can be enhanced if BufferredWriter is being used instead of Writer to write the resultant byte stream to the output streams.
Das obige ist der detaillierte Inhalt vonJava-OutputStreamWriter. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!