Java OutputStreamWriter (med eksempler)

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 forfatteren
  • write(char() array) - skriver tegnene fra den spesifiserte matrisen til forfatteren
  • write(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).

Interessante artikler...