Heim > Java > javaLernprogramm > Hauptteil

Java-OutputStreamWriter

PHPz
Freigeben: 2024-08-30 16:08:05
Original
1057 Leute haben es durchsucht

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!

Verwandte Etiketten:
Quelle:php
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage