Java OutputStreamWriter-klasse
Java OutputStreamWriter-klasse
In deze zelfstudie leren we over Java OutputStreamWriter en zijn methoden aan de hand van voorbeelden.
De OutputStreamWriter
klasse van de java.io
pakket kan worden gebruikt om gegevens in tekenvorm om te zetten in gegevens in bytes-vorm.
Het breidt de abstracte klasse Writer
uit .
De OutputStreamWriter
class werkt met andere uitvoerstromen. Het is ook bekend als een brug tussen bytestreams en karakterstreams. Dit komt omdat de OutputStreamWriter
zet zijn karakters om in bytes.
Sommige tekens hebben bijvoorbeeld 2 bytes nodig om in de opslag te worden opgeslagen. Om dergelijke gegevens te schrijven, kunnen we de uitvoerstroomschrijver gebruiken die het teken omzet in overeenkomstige bytes en de bytes samen opslaat.
Maak een OutputStreamWriter
Om een OutputStreamWriter
. aan te maken , moeten we de java.io.OutputStreamWriter
. importeren pakket eerst. Nadat we het pakket hier hebben geïmporteerd, kunnen we de uitvoerstroomschrijver maken.
// Creates an OutputStream
FileOutputStream file = new FileOutputStream(String path);
// Creates an OutputStreamWriter
OutputStreamWriter output = new OutputStreamWriter(file);
In het bovenstaande voorbeeld hebben we een OutputStreamWriter
. gemaakt benoemde uitvoer samen met de FileOutputStream
genoemd bestand.
Hier gebruiken we de standaard tekencodering om tekens naar de uitvoerstroom te schrijven.
We kunnen echter het type tekencodering specificeren (UTF8 of UTF16 ) om gegevens te schrijven.
// Creates an OutputStreamWriter specifying the character encoding
OutputStreamWriter output = new OutputStreamWriter(file, Charset cs);
Hier hebben we de Charset
. gebruikt class om het type tekencodering op te geven.
Methoden van OutputStreamWriter
De OutputStreamWriter
class biedt implementaties voor verschillende methoden die aanwezig zijn in de Writer
klasse.
write()-methode
write()
- schrijft een enkel teken naar de schrijverwrite(char[] array)
- schrijft de karakters van de opgegeven array naar de schrijverwrite(String data)
- schrijft de opgegeven string naar de schrijver
Voorbeeld:OutputStreamWriter om gegevens naar een bestand te schrijven
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();
}
}
}
In het bovenstaande voorbeeld hebben we een uitvoerstroomlezer gemaakt met behulp van de bestandsuitvoerstroom. De output stream reader is gekoppeld aan de output.txt bestand.
FileOutputStream file = new FileOutputStream("output.txt");
OutputStreamWriter output = new OutputStreamWriter(file);
Om gegevens naar het bestand te schrijven, hebben we de write()
. gebruikt methode.
Hier, wanneer we het programma uitvoeren, wordt de output.txt bestand is gevuld met de volgende inhoud.
This is a line of text inside the file.
getEncoding()-methode
De getEncoding()
methode kan worden gebruikt om het type codering te krijgen dat wordt gebruikt om gegevens naar de uitvoerstroom te schrijven. Bijvoorbeeld,
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();
}
}
}
Uitvoer
The character encoding of output1: Cp1252 The character encoding of output2: UTF8
In het bovenstaande voorbeeld hebben we 2 uitvoerstroomschrijvers gemaakt met de naam output1 en output2 .
- uitvoer1 specificeert niet de tekencodering. Vandaar de
getEncoding()
methode retourneert de standaard tekencodering. - uitvoer2 specificeert de tekencodering, UTF8 . Vandaar de
getEncoding()
methode retourneert de opgegeven tekencodering.
Opmerking :We hebben de Charset.forName()
. gebruikt methode om het type tekencodering op te geven. Ga voor meer informatie naar Java Charset (officiële Java-documentatie).
close() Methode
Om de uitvoerstroomschrijver te sluiten, kunnen we de close()
. gebruiken methode. Zodra de close()
methode wordt aangeroepen, kunnen we de schrijver niet gebruiken om de gegevens te schrijven.
Andere methoden van OutputStreamWriter
Methode | Beschrijving |
---|---|
flush() | dwingt om alle gegevens in de schrijver naar de corresponderende bestemming te schrijven |
append() | voegt het opgegeven teken in bij de huidige schrijver |
Ga voor meer informatie naar Java OutputStreamWriter (officiële Java-documentatie).
Java