Java OutputStreamWriter (med exempel)

I denna handledning lär vi oss om Java OutputStreamWriter och dess metoder med hjälp av exempel.

Paketets OutputStreamWriterklass java.iokan användas för att konvertera data i teckenform till data i byteform.

Det utvidgar den abstrakta klassen Writer.

Den OutputStreamWriterklass 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 OutputStreamWriterkonverterar 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 OutputStreamWritermåste vi först importera java.io.OutputStreamWriterpaketet. 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 OutputStreamWriternamngiven utgång tillsammans med den FileOutputStreamnamngivna 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 Charsetklassen för att ange typen av teckenkodning.

Metoder för OutputStreamWriter

Den OutputStreamWriterklass erbjuder implementeringar för olika metoder att presentera i Writerklassen.

skriv () Metod

  • write() - skriver en enda karaktär till författaren
  • write(char() array) - skriver karaktärerna från den angivna matrisen till författaren
  • write(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).

Intressanta artiklar...