„Java OutputStreamWriter“ (su pavyzdžiais)

Š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 masyvo
  • write(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).

Įdomios straipsniai...