În acest tutorial, vom afla despre Java OutputStreamWriter și metodele sale cu ajutorul unor exemple.
OutputStreamWriter
Clasa a java.io
pachetului poate fi utilizat pentru a converti datele în formă de caractere în date sub formă de octeți.
Extinde clasa abstractă Writer
.
OutputStreamWriter
Clasă 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ă OutputStreamWriter
converteș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 OutputStreamWriter
ieșire numită împreună cu FileOutputStream
fiș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 Charset
clasa pentru a specifica tipul de codificare a caracterelor.
Metode OutputStreamWriter
OutputStreamWriter
Clasa oferă implementări pentru diferite metode prezintă în Writer
clasă.
write () Metoda
write()
- scrie un singur personaj scriitoruluiwrite(char() array)
- scrie caracterele din matricea specificată către scriitorwrite(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).