Java OutputStreamWriter (med eksempler)

I denne vejledning lærer vi om Java OutputStreamWriter og dens metoder ved hjælp af eksempler.

Den OutputStreamWriterklasse af java.ioemballagen kan bruges til at konvertere data i karakter form til data i bytes formular.

Det udvider den abstrakte klasse Writer.

Den OutputStreamWriterklasse virker med andre udgangsstrømme. Det er også kendt som en bro mellem byte-streams og character streams. Dette skyldes, at OutputStreamWriterkonverterer sine tegn til bytes.

For eksempel kræver nogle tegn, at der gemmes 2 byte på lageret. For at skrive sådanne data kan vi bruge output-stream-forfatteren, der konverterer tegnet til tilsvarende bytes og gemmer bytes sammen.

Opret en OutputStreamWriter

For at oprette en OutputStreamWriterskal vi først importere java.io.OutputStreamWriterpakken. Når vi først har importeret pakken, kan vi oprette outputstrømforfatteren her.

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

I ovenstående eksempel har vi oprettet et OutputStreamWriternavngivet output sammen med den FileOutputStreamnavngivne fil.

Her bruger vi standardtegnkodningen til at skrive tegn til outputstrømmen.

Vi kan dog specificere den type tegnkodning ( UTF8 eller UTF16 ), der skal bruges til at skrive data.

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

Her har vi brugt Charsetklassen til at specificere typen af ​​tegnkodning.

Metoder til OutputStreamWriter

Den OutputStreamWriterklasse giver implementeringer for forskellige metoder præsentere i Writerklasse.

skriv () metode

  • write() - skriver en enkelt karakter til forfatteren
  • write(char() array) - skriver tegnene fra det angivne array til forfatteren
  • write(String data) - skriver den angivne streng til forfatteren

Eksempel: OutputStreamWriter til at 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 ovenstående eksempel har vi oprettet en output-stream-læser ved hjælp af fil-output-stream. Outputstream- læseren er knyttet til output.txt- filen.

 FileOutputStream file = new FileOutputStream("output.txt"); OutputStreamWriter output = new OutputStreamWriter(file); 

For at skrive data til filen har vi brugt write()metoden.

Her, når vi kører programmet, udfyldes output.txt- filen med følgende indhold.

 This is a line of text inside the file. 

getEncoding () metode

Den getEncoding()Fremgangsmåden kan anvendes til at få den type koder, der bruges til skrive data til den udgående strøm. 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(); ) ) ) 

Produktion

 Tegnkodning af output1: Cp1252 Tegnkodning af output2: UTF8 

I ovenstående eksempel har vi oprettet 2 output streamwriter med navnet output1 og output2.

  • output1 angiver ikke tegnkodningen. Derfor getEncoding()returnerer metoden standardtegnkodningen.
  • output2 specificerer tegnkodning, UTF8 . Derfor getEncoding()returnerer metoden den angivne tegnkodning.

Bemærk : Vi har brugt Charset.forName()metoden til at specificere typen af ​​tegnkodning. For at lære mere, besøg Java Charset (officiel Java-dokumentation).

close () Metode

For at lukke outputstream-forfatteren kan vi bruge close()metoden. Når close()metoden er kaldt, kan vi ikke bruge forfatteren til at skrive dataene.

Andre metoder til OutputStreamWriter

Metode Beskrivelse
flush() tvinger til at skrive alle data til stede i forfatteren til den tilsvarende destination
append() indsætter det angivne tegn i den aktuelle forfatter

For at lære mere, besøg Java OutputStreamWriter (officiel Java-dokumentation).

Interessante artikler...