I denne opplæringen vil vi lære om Java OutputStreamWriter og dens metoder ved hjelp av eksempler.
Den OutputStreamWriter
klasse av java.io
pakken kan anvendes for å omdanne data i tegn form inn data i byte form.
Det utvider den abstrakte klassen Writer
.
Den OutputStreamWriter
klasse fungerer med andre utgående strømmer. Det er også kjent som en bro mellom byte-strømmer og karakterstrømmer. Dette er fordi OutputStreamWriter
konverterer 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.OutputStreamWriter
pakken 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 OutputStreamWriter
navngitt utgang sammen med den FileOutputStream
navngitte 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 Charset
klassen til å spesifisere typen tegnkoding.
Metoder for OutputStreamWriter
Den OutputStreamWriter
klasse gir implementeringer for forskjellige metoder for å medføre i Writer
klassen.
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).