Šioje pamokoje pavyzdžių pagalba sužinosime apie „Java OutputStreamWriter“ ir jos metodus.
OutputStreamWriter
Klasės java.io
pakuotėje gali būti naudojama konvertuoti duomenų simbolių pavidalu į duomenų baitų forma.
Tai pratęsia abstrakčią klasę Writer
.
OutputStreamWriter
Klasė bendradarbiauja su kitomis išeigos srautų. Jis taip pat žinomas kaip tiltas tarp baitų srautų ir simbolių srautų. Taip yra todėl, kad OutputStreamWriter
paverč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.OutputStreamWriter
paketą. 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 OutputStreamWriter
pavadintą išvestį kartu su FileOutputStream
pavadintu 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 Charset
klasę, norėdami nurodyti simbolių kodavimo tipą.
„OutputStreamWriter“ metodai
OutputStreamWriter
Klasė suteikia realizacijos įvairių metodų pristatyti į Writer
klasę.
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).