Java OutputStreamWriter (cu exemple)

În acest tutorial, vom afla despre Java OutputStreamWriter și metodele sale cu ajutorul unor exemple.

OutputStreamWriterClasa a java.iopachetului poate fi utilizat pentru a converti datele în formă de caractere în date sub formă de octeți.

Extinde clasa abstractă Writer.

OutputStreamWriterClasă lucrează cu alte fluxuri de ieșire. Este, de asemenea, cunoscut ca o punte între fluxurile de octeți și fluxurile de caractere. Acest lucru se datorează faptului că OutputStreamWriterconvertește caracterele sale în octeți.

De exemplu, unele caractere necesită stocarea a 2 octeți. Pentru a scrie astfel de date putem folosi un scriitor de flux de ieșire care convertește caracterul în octeți corespunzători și stochează octeții împreună.

Creați un OutputStreamWriter

Pentru a crea un OutputStreamWriter, trebuie mai java.io.OutputStreamWriterîntâi să importăm pachetul. Odată ce am importat pachetul, iată cum putem crea scriitorul de flux de ieșire.

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

În exemplul de mai sus, am creat o OutputStreamWriterieșire numită împreună cu FileOutputStreamfișierul numit.

Aici, folosim codificarea implicită a caracterelor pentru a scrie caractere în fluxul de ieșire.

Cu toate acestea, putem specifica tipul de codificare a caracterelor ( UTF8 sau UTF16 ) care va fi utilizat pentru a scrie date.

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

Aici, am folosit Charsetclasa pentru a specifica tipul de codificare a caracterelor.

Metode OutputStreamWriter

OutputStreamWriterClasa oferă implementări pentru diferite metode prezintă în Writerclasă.

write () Metoda

  • write() - scrie un singur personaj scriitorului
  • write(char() array) - scrie caracterele din matricea specificată către scriitor
  • write(String data) - scrie șirul specificat scriitorului

Exemplu: OutputStreamWriter pentru a scrie date într-un fișier

 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(); ) ) ) 

În exemplul de mai sus, am creat un cititor de flux de ieșire folosind fluxul de ieșire a fișierului. Cititorul fluxului de ieșire este legat de fișierul output.txt .

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

Pentru a scrie date în fișier, am folosit write()metoda.

Aici, când rulăm programul, fișierul output.txt este umplut cu următorul conținut.

 This is a line of text inside the file. 

Metoda getEncoding ()

getEncoding()Metoda poate fi utilizată pentru a obține tipul de codificare , care este utilizat pentru a scrie date în fluxul de ieșire. De exemplu,

 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(); ) ) ) 

Ieșire

 Codificarea caracterelor ieșirii1: Cp1252 Codificarea caracterelor ieșirii2: UTF8 

În exemplul de mai sus, am creat 2 scriere de flux de ieșire numite output1 și output2.

  • output1 nu specifică codarea caracterelor. Prin urmare, getEncoding()metoda returnează codarea implicită a caracterelor.
  • output2 specifică codarea caracterelor, UTF8 . Prin urmare, getEncoding()metoda returnează codificarea caracterelor specificate.

Notă : Am folosit Charset.forName()metoda pentru a specifica tipul de codificare a caracterelor. Pentru a afla mai multe, vizitați Java Charset (documentație oficială Java).

close () Metoda

Pentru a închide scriitorul de flux de ieșire, putem folosi close()metoda. Odată ce close()metoda este apelată, nu putem folosi scriitorul pentru a scrie datele.

Alte metode ale OutputStreamWriter

Metodă Descriere
flush() forțează să scrie toate datele prezente în scriitor la destinația corespunzătoare
append() inserează caracterul specificat scriitorului curent

Pentru a afla mai multe, vizitați Java OutputStreamWriter (documentație oficială Java).

Articole interesante...