Šioje pamokoje pavyzdžių pagalba sužinosime apie „Java OutputStreamWriter“ ir jos metodus.
OutputStreamWriterKlasės java.iopakuotėje gali būti naudojama konvertuoti duomenų simbolių pavidalu į duomenų baitų forma.
Tai pratęsia abstrakčią klasę Writer.

OutputStreamWriterKlasė bendradarbiauja su kitomis išeigos srautų. Jis taip pat žinomas kaip tiltas tarp baitų srautų ir simbolių srautų. Taip yra todėl, kad OutputStreamWriterpaverčia savo simbolius baitais.
Pavyzdžiui, kai kuriems simboliams saugykloje reikia išsaugoti 2 baitus. Tokiems duomenims parašyti galime naudoti išvesties srauto rašytoją, kuris paverčia simbolį atitinkamais baitais ir kartu saugo baitus.
Sukurkite „OutputStreamWriter“
Norėdami sukurti OutputStreamWriter, pirmiausia turime importuoti java.io.OutputStreamWriterpaketą. Kai importuosime paketą, galime sukurti išvesties srauto rašytoją.
 // Creates an OutputStream FileOutputStream file = new FileOutputStream(String path); // Creates an OutputStreamWriter OutputStreamWriter output = new OutputStreamWriter(file); 
Ankstesniame pavyzdyje mes sukūrėme OutputStreamWriterpavadintą išvestį kartu su FileOutputStreampavadintu failu.
Čia mes naudojame numatytąjį simbolių kodavimą, norėdami rašyti simbolius į išvesties srautą.
Tačiau galime nurodyti simbolių kodavimo tipą ( UTF8 arba UTF16 ), kuris bus naudojamas duomenims rašyti.
 // Creates an OutputStreamWriter specifying the character encoding OutputStreamWriter output = new OutputStreamWriter(file, Charset cs); 
Čia mes naudojome Charsetklasę, norėdami nurodyti simbolių kodavimo tipą.
„OutputStreamWriter“ metodai
OutputStreamWriterKlasė suteikia realizacijos įvairių metodų pristatyti į Writerklasę.
rašyti () metodas
write()- rašo rašytojui vieną veikėjąwrite(char() array)- rašo rašytojui simbolius iš nurodyto masyvowrite(String data)- rašo rašytojui nurodytą eilutę
Pavyzdys: „OutputStreamWriter“ rašyti duomenis į failą
 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(); ) ) ) 
Ankstesniame pavyzdyje mes sukūrėme išvesties srauto skaitytuvą naudodami failo išvesties srautą. Išvesties srauto skaitytuvas susietas su output.txt failu.
 FileOutputStream file = new FileOutputStream("output.txt"); OutputStreamWriter output = new OutputStreamWriter(file); 
Norėdami įrašyti duomenis į failą, mes naudojome write()metodą.
Čia, kai vykdome programą, failas output.txt užpildomas tokiu turiniu.
 This is a line of text inside the file.  
getEncoding () metodas
getEncoding()Metodas gali būti naudojamas norint gauti tipo kodavimo, kad yra naudojamas rašyti duomenis į išėjimo srovė. Pavyzdžiui,
 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(); ) ) ) 
Rezultatas
Išvesties1 simbolių kodavimas: Cp12522 išvesties simbolių kodavimas: UTF8
Ankstesniame pavyzdyje mes sukūrėme 2 išvesties srauto rašytoją, pavadintą output1 ir output2.
- output1 nenurodo simbolių kodavimo. Taigi 
getEncoding()metodas grąžina numatytąjį simbolių kodavimą. - output2 nurodo simbolių kodavimą UTF8 . Taigi 
getEncoding()metodas grąžina nurodytą simbolių kodavimą. 
Pastaba : mes naudojome Charset.forName()metodą, norėdami nurodyti simbolių kodavimo tipą. Norėdami sužinoti daugiau, apsilankykite „Java Charset“ (oficiali „Java“ dokumentacija).
uždaryti () metodas
Norėdami uždaryti išvesties srauto rašytoją, galime naudoti close()metodą. Iškvietus close()metodą, mes negalime naudoti rašytojo duomenims rašyti.
Kiti „OutputStreamWriter“ metodai
| Metodas | apibūdinimas | 
|---|---|
flush() |  verčia visus rašytojo duomenis įrašyti į atitinkamą paskirties vietą | 
append() |  įterpia nurodytą simbolį dabartiniam rašytojui | 
Norėdami sužinoti daugiau, apsilankykite „Java OutputStreamWriter“ (oficiali „Java“ dokumentacija).








