I denne opplæringen vil vi lære om Java OutputStreamWriter og dens metoder ved hjelp av eksempler.
Den OutputStreamWriterklasse av java.iopakken kan anvendes for å omdanne data i tegn form inn data i byte form.
Det utvider den abstrakte klassen Writer.

Den OutputStreamWriterklasse fungerer med andre utgående strømmer. Det er også kjent som en bro mellom byte-strømmer og karakterstrømmer. Dette er fordi OutputStreamWriterkonverterer karakterene til byte.
For eksempel krever noen tegn at 2 byte lagres i lagringen. For å skrive slike data kan vi bruke output stream writer som konverterer tegnet til tilsvarende byte og lagrer byte sammen.
Lag en OutputStreamWriter
For å opprette en OutputStreamWriter, må vi importere java.io.OutputStreamWriterpakken først. Når vi først har importert pakken, kan vi lage output stream writer.
 // Creates an OutputStream FileOutputStream file = new FileOutputStream(String path); // Creates an OutputStreamWriter OutputStreamWriter output = new OutputStreamWriter(file); 
I eksemplet ovenfor har vi opprettet en OutputStreamWriternavngitt utgang sammen med den FileOutputStreamnavngitte filen.
Her bruker vi standard tegnkoding for å skrive tegn til utdatastrømmen.
Vi kan imidlertid spesifisere typen tegnkoding ( UTF8 eller UTF16 ) som skal brukes til å skrive data.
 // Creates an OutputStreamWriter specifying the character encoding OutputStreamWriter output = new OutputStreamWriter(file, Charset cs); 
Her har vi brukt Charsetklassen til å spesifisere typen tegnkoding.
Metoder for OutputStreamWriter
Den OutputStreamWriterklasse gir implementeringer for forskjellige metoder for å medføre i Writerklassen.
skriv () Metode
write()- skriver en enkelt karakter til forfatterenwrite(char() array)- skriver tegnene fra den spesifiserte matrisen til forfatterenwrite(String data)- skriver den angitte strengen til forfatteren
Eksempel: OutputStreamWriter for å skrive data til en fil
 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(); ) ) ) 
I eksemplet ovenfor har vi opprettet en utgangsstrømleser ved hjelp av filutgangsstrømmen. Utgangsstrømleseren er koblet til output.txt- filen.
 FileOutputStream file = new FileOutputStream("output.txt"); OutputStreamWriter output = new OutputStreamWriter(file); 
For å skrive data til filen har vi brukt write()metoden.
Her, når vi kjører programmet, er output.txt- filen fylt med følgende innhold.
 This is a line of text inside the file.  
getEncoding () Metode
Den getEncoding()metode kan brukes for å få den type koding som brukes til å skrive data til utgangsstrømmen. For eksempel,
 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(); ) ) ) 
Produksjon
Tegnkodingen for utdata1: Cp1252 Tegnkodingen for utdata2: UTF8
I eksemplet ovenfor har vi opprettet 2 utgangsstrømforfattere som heter output1 og output2.
- output1 spesifiserer ikke tegnkodingen. Derfor 
getEncoding()returnerer metoden standard tegnkoding. - output2 spesifiserer tegnkodingen, UTF8 . Derfor 
getEncoding()returnerer metoden den spesifiserte tegnkodingen. 
Merk : Vi har brukt Charset.forName()metoden til å spesifisere typen tegnkoding. For å lære mer, besøk Java Charset (offisiell Java-dokumentasjon).
lukk () Metode
For å lukke output stream writer kan vi bruke close()metoden. Når close()metoden er kalt, kan vi ikke bruke forfatteren til å skrive dataene.
Andre metoder for OutputStreamWriter
| Metode | Beskrivelse | 
|---|---|
flush() |  tvinger til å skrive alle dataene som er tilstede i forfatteren til den tilsvarende destinasjonen | 
append() |  setter inn det angitte tegnet til den nåværende skribenten | 
For å lære mer, besøk Java OutputStreamWriter (offisiell Java-dokumentasjon).








