Java OutputStreamWriter (met voorbeelden)

In deze tutorial leren we met behulp van voorbeelden over Java OutputStreamWriter en zijn methoden.

De OutputStreamWriterklasse van het java.iopakket kan worden gebruikt om gegevens in tekenvorm om te zetten in gegevens in bytesvorm.

Het breidt de abstracte klasse uit Writer.

De OutputStreamWriterklas werkt met andere outputstromen. Het is ook bekend als een brug tussen bytestromen en karakterstromen. Dit komt doordat het OutputStreamWriterzijn karakters omzet in bytes.

Voor sommige tekens is 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 ​​te maken OutputStreamWriter, moeten we eerst het java.io.OutputStreamWriterpakket importeren . Zodra we het pakket hebben geïmporteerd, is hier hoe we de uitvoerstroomschrijver kunnen maken.

 // Creates an OutputStream FileOutputStream file = new FileOutputStream(String path); // Creates an OutputStreamWriter OutputStreamWriter output = new OutputStreamWriter(file); 

In het bovenstaande voorbeeld hebben we OutputStreamWritersamen met het FileOutputStreamgenoemde bestand een uitvoer met naam gemaakt.

Hier gebruiken we de standaard tekencodering om tekens naar de uitvoerstroom te schrijven.

We kunnen echter het type tekencodering ( UTF8 of UTF16 ) specificeren dat moet worden gebruikt om gegevens te schrijven.

 // Creates an OutputStreamWriter specifying the character encoding OutputStreamWriter output = new OutputStreamWriter(file, Charset cs); 

Hier hebben we de Charsetklasse gebruikt om het type tekencodering te specificeren.

Methoden van OutputStreamWriter

De OutputStreamWriterklasse biedt implementaties voor verschillende methoden die in de Writerklasse aanwezig zijn.

write () methode

  • write() - schrijft een enkel personage naar de schrijver
  • write(char() array) - schrijft de tekens uit de opgegeven array naar de schrijver
  • write(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 outputstroomlezer is gekoppeld aan het 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()methode gebruikt.

Hier, wanneer we het programma uitvoeren, wordt het output.txt- bestand 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 op te halen 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

 De tekencodering van output1: Cp1252 De tekencodering van output2: UTF8 

In het bovenstaande voorbeeld hebben we twee uitvoerstroomschrijvers gemaakt met de naam output1 en output2.

  • output1 specificeert niet de tekencodering. Daarom getEncoding()retourneert de methode de standaard tekencodering.
  • output2 specificeert de tekencodering, UTF8 . Daarom getEncoding()retourneert de methode de opgegeven tekencodering.

Opmerking : we hebben de Charset.forName()methode gebruikt om het type tekencodering te specificeren. Voor meer informatie, bezoek Java Charset (officiële Java-documentatie).

close () Methode

Om de uitvoerstroomschrijver te sluiten, kunnen we de close()methode gebruiken. Zodra de close()methode is aangeroepen, kunnen we de schrijver niet gebruiken om de gegevens te schrijven.

Andere methoden van OutputStreamWriter

Methode Omschrijving
flush() dwingt om alle gegevens in de schrijver naar de overeenkomstige bestemming te schrijven
append() voegt het opgegeven teken in de huidige schrijver in

Bezoek voor meer informatie Java OutputStreamWriter (officiële Java-documentatie).

Interessante artikelen...