Inhaltsverzeichnis
Wie funktioniert OutputStreamWriter in Java?
Konstrukteure
1. OutputStreamWriter (OutputStream out)
2. OutputStreamWriter (OutputStream out, CharsetcsObj)
3. OutputStreamWriter (OutputStream out, CharsetEncoder enc)
4. OutputStreamWriter (OutputStream out, StringcsName)
Methoden
Examples
Example 3
Conclusion – Java OutputStreamWriter
Heim Java javaLernprogramm Java-OutputStreamWriter

Java-OutputStreamWriter

Aug 30, 2024 pm 04:08 PM
java

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
Nach dem Login kopieren

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.

Wie funktioniert OutputStreamWriter in Java?

  • Die OutputStreamWriter-Klasse ist eine direkte Unterklasse der Writer-Klasse, die beim Schreiben in den Ausgabestream hilft. Diese Klasse wandelt jedes Zeichen des Zeichenstroms in einen Bytestrom um und fungiert somit als Brücke zwischen dem Zeichenstrom und dem Bytestrom.
  • Für diese Konvertierung wird der angegebene Zeichensatz des Encoders verwendet, z. B. UTF-8 usw., der als Argumente an seine Schreibmethode übergeben wird. Da die an die Schreibmethode übergebenen Zeichen nicht gepuffert werden, wird der Ausgabebyte-Stream dann gepuffert, bevor in den Ausgabestream geschrieben wird.
  • Um die Leistung der Anwendung zu optimieren und häufige Aufrufe des Konverters zu vermeiden, wird die Verwendung mit BufferedWriter empfohlen.

Konstrukteure

Um eine Instanz der OutputStreamWriter-Klasse zu erstellen, haben wir die folgenden 4 Arten von Konstruktoren:

1. OutputStreamWriter (OutputStream out)

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); //
Nach dem Login kopieren

Dies ist eine Instanz von OutputStream.

OutputStreamWriter output = new OutputStreamWriter (fileObj);//
Nach dem Login kopieren

Die obige Instanz wird als Argument übergeben, um die Datei anzugeben, in die die Ausgabe geschrieben werden muss.

2. OutputStreamWriter (OutputStream out, CharsetcsObj)

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"));
Nach dem Login kopieren

3. OutputStreamWriter (OutputStream out, CharsetEncoder enc)

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);
Nach dem Login kopieren

4. OutputStreamWriter (OutputStream out, StringcsName)

Dieser Konstruktor gibt eine Instanz von OutputStreamWriter zurück, die den angegebenen Zeichensatznamen verwendet.

Beispiel:

OutputStreamWriter output = new OutputStreamWriter (fileObj,"UTF-8");
Nach dem Login kopieren

Hier ist der Zeichensatzname, der zum Konvertieren eines Zeichenstroms in den Bytestrom verwendet wird, „UTF-8“.

Methoden

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 ()
Nach dem Login kopieren

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 ()
Nach dem Login kopieren

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 ()
Nach dem Login kopieren

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)
Nach dem Login kopieren

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)
Nach dem Login kopieren

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)
Nach dem Login kopieren

This method just writes the converted byte stream to the output file. It does not return anything.

Examples

Below the examples of Java OutputStreamWriter:

Example 1

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 ();
}
}
}
Nach dem Login kopieren

Output:

Java-OutputStreamWriter

Example 2

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 ();
}
}
}
Nach dem Login kopieren

Output:

Java-OutputStreamWriter

Example 3

//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 ();
}
}
}
Nach dem Login kopieren

Output:

Java-OutputStreamWriter

Conclusion – Java OutputStreamWriter

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!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße Artikel -Tags

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Quadratwurzel in Java Quadratwurzel in Java Aug 30, 2024 pm 04:26 PM

Quadratwurzel in Java

Perfekte Zahl in Java Perfekte Zahl in Java Aug 30, 2024 pm 04:28 PM

Perfekte Zahl in Java

Zufallszahlengenerator in Java Zufallszahlengenerator in Java Aug 30, 2024 pm 04:27 PM

Zufallszahlengenerator in Java

Armstrong-Zahl in Java Armstrong-Zahl in Java Aug 30, 2024 pm 04:26 PM

Armstrong-Zahl in Java

Weka in Java Weka in Java Aug 30, 2024 pm 04:28 PM

Weka in Java

Smith-Nummer in Java Smith-Nummer in Java Aug 30, 2024 pm 04:28 PM

Smith-Nummer in Java

Fragen zum Java Spring-Interview Fragen zum Java Spring-Interview Aug 30, 2024 pm 04:29 PM

Fragen zum Java Spring-Interview

Brechen oder aus Java 8 Stream foreach zurückkehren? Brechen oder aus Java 8 Stream foreach zurückkehren? Feb 07, 2025 pm 12:09 PM

Brechen oder aus Java 8 Stream foreach zurückkehren?

See all articles