I denna handledning lär vi oss om Java OutputStreamWriter och dess metoder med hjälp av exempel.
Paketets OutputStreamWriter
klass java.io
kan användas för att konvertera data i teckenform till data i byteform.
Det utvidgar den abstrakta klassen Writer
.
Den OutputStreamWriter
klass samverkar med andra utgångsströmmar. Det är också känt som en bro mellan byte-strömmar och karaktärsströmmar. Detta beror på att OutputStreamWriter
konverterar sina tecken till byte.
Till exempel kräver vissa tecken att 2 byte lagras i lagringen. För att skriva sådana data kan vi använda output streamwriter som konverterar karaktären till motsvarande byte och lagrar byten tillsammans.
Skapa en OutputStreamWriter
För att skapa ett OutputStreamWriter
måste vi först importera java.io.OutputStreamWriter
paketet. När vi väl har importerat paketet här är hur vi kan skapa output streamwriter.
// Creates an OutputStream FileOutputStream file = new FileOutputStream(String path); // Creates an OutputStreamWriter OutputStreamWriter output = new OutputStreamWriter(file);
I exemplet ovan har vi skapat en OutputStreamWriter
namngiven utgång tillsammans med den FileOutputStream
namngivna filen.
Här använder vi standardteckenkodningen för att skriva tecken till utdataströmmen.
Vi kan dock ange vilken typ av teckenkodning ( UTF8 eller UTF16 ) som ska användas för att skriva data.
// Creates an OutputStreamWriter specifying the character encoding OutputStreamWriter output = new OutputStreamWriter(file, Charset cs);
Här har vi använt Charset
klassen för att ange typen av teckenkodning.
Metoder för OutputStreamWriter
Den OutputStreamWriter
klass erbjuder implementeringar för olika metoder att presentera i Writer
klassen.
skriv () Metod
write()
- skriver en enda karaktär till författarenwrite(char() array)
- skriver karaktärerna från den angivna matrisen till författarenwrite(String data)
- skriver den angivna strängen till författaren
Exempel: OutputStreamWriter för att skriva data till 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 exemplet ovan har vi skapat en utdataströmläsare med filutmatningsströmmen. Utgångsströmläsaren är länkad till filen output.txt .
FileOutputStream file = new FileOutputStream("output.txt"); OutputStreamWriter output = new OutputStreamWriter(file);
För att skriva data till filen har vi använt write()
metoden.
Här, när vi kör programmet, fylls output.txt- filen med följande innehåll.
This is a line of text inside the file.
getEncoding () Metod
Den getEncoding()
metod kan användas för att få den typ av kodning som används för att skriva data till den utgående strömmen. Till exempel,
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
Teckenkodningen för output1: Cp1252 Teckenkodningen för output2: UTF8
I exemplet ovan har vi skapat 2 output streamwriter med namnet output1 och output2.
- output1 anger inte teckenkodningen. Därför
getEncoding()
returnerar metoden standardteckenkodningen. - output2 anger teckenkodningen, UTF8 . Därför
getEncoding()
returnerar metoden den angivna teckenkodningen.
Obs! Vi har använt Charset.forName()
metoden för att specificera typen av teckenkodning. För mer information, besök Java Charset (officiell Java-dokumentation).
close () Metod
För att stänga output streamwriter kan vi använda close()
metoden. När close()
metoden har anropats kan vi inte använda författaren för att skriva data.
Andra metoder för OutputStreamWriter
Metod | Beskrivning |
---|---|
flush() | tvingar att skriva all data som finns i författaren till motsvarande destination |
append() | infogar det angivna tecknet i den aktuella författaren |
För att lära dig mer, besök Java OutputStreamWriter (officiell Java-dokumentation).