I denne vejledning lærer vi om Java OutputStreamWriter og dens metoder ved hjælp af eksempler.
Den OutputStreamWriter
klasse af java.io
emballagen kan bruges til at konvertere data i karakter form til data i bytes formular.
Det udvider den abstrakte klasse Writer
.
Den OutputStreamWriter
klasse virker med andre udgangsstrømme. Det er også kendt som en bro mellem byte-streams og character streams. Dette skyldes, at OutputStreamWriter
konverterer 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 OutputStreamWriter
skal vi først importere java.io.OutputStreamWriter
pakken. 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 OutputStreamWriter
navngivet output sammen med den FileOutputStream
navngivne 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 Charset
klassen til at specificere typen af tegnkodning.
Metoder til OutputStreamWriter
Den OutputStreamWriter
klasse giver implementeringer for forskellige metoder præsentere i Writer
klasse.
skriv () metode
write()
- skriver en enkelt karakter til forfatterenwrite(char() array)
- skriver tegnene fra det angivne array til forfatterenwrite(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).