Selles õpetuses õpime näidete abil Java OutputStreamWriterit ja selle meetodeid.
OutputStreamWriter
Klassi java.io
pakett saab kasutada teisendada andmeid iseloomu vormi arvesse andmete baitide kujul.
See laiendab abstraktset klassi Writer
.
OutputStreamWriter
Klassi töötab koos teiste tulostevirrat. Seda tuntakse ka sillana baitivoogude ja märgivoogude vahel. Seda seetõttu, et OutputStreamWriter
teisendab oma tähemärgid baitideks.
Näiteks vajavad mõned tähemärgid 2 baiti salvestusruumi salvestamist. Selliste andmete kirjutamiseks võime kasutada väljundvoo kirjutajat, mis teisendab märgi vastavateks baitideks ja salvestab baidid koos.
Looge OutputStreamWriter
Selle loomiseks OutputStreamWriter
peame java.io.OutputStreamWriter
esmalt pakendi importima . Kui pakett on siin imporditud, saame väljundvoo kirjutaja luua.
// Creates an OutputStream FileOutputStream file = new FileOutputStream(String path); // Creates an OutputStreamWriter OutputStreamWriter output = new OutputStreamWriter(file);
Ülalolevas näites oleme OutputStreamWriter
koos FileOutputStream
nimega failiga loonud nimelise väljundi .
Siin kasutame väljundvoogu märkide kirjutamiseks vaikimisi märgikodeeringut.
Kuid me saame määrata andmete kirjutamiseks kasutatava märgikodeeringu tüübi ( UTF8 või UTF16 ).
// Creates an OutputStreamWriter specifying the character encoding OutputStreamWriter output = new OutputStreamWriter(file, Charset cs);
Siin oleme kasutanud Charset
klassi, et määrata märkide kodeeringu tüüp.
OutputStreamWriteri meetodid
OutputStreamWriter
Tasemega näeb implementation erinevaid meetodeid sisalduse funktsioon Writer
tasemega.
kirjuta () meetod
write()
- kirjutab kirjanikule ühe tegelasewrite(char() array)
- kirjutab tähemärgid määratud massiivist kirjutajalewrite(String data)
- kirjutab määratud stringi kirjutajale
Näide: OutputStreamWriter andmete faili kirjutamiseks
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(); ) ) )
Ülaltoodud näites oleme failiväljundi voo abil loonud väljundvoo lugeja. Väljundvoo lugeja on lingitud failiga output.txt .
FileOutputStream file = new FileOutputStream("output.txt"); OutputStreamWriter output = new OutputStreamWriter(file);
Andmete faili kirjutamiseks oleme kasutanud write()
meetodit.
Siin on programmi käivitamisel fail output.txt täidetud järgmise sisuga.
This is a line of text inside the file.
getEncoding () meetod
getEncoding()
Meetodit saab kasutada, et saada kodeerimistüüp, mida kasutatakse kirjutada andmeid toodangu voog. Näiteks,
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(); ) ) )
Väljund
Väljundi1: Cp1252 märkekodeering: väljundi2: UTF8 tähemärgikodeering
Ülaltoodud näites oleme loonud 2 väljundvoo kirjutajat nimega output1 ja output2.
- väljund1 ei määra märkide kodeerimist. Seega
getEncoding()
tagastab meetod vaikimisi märgikodeeringu. - väljund2 määrab märkide kodeerimise UTF8 . Seega
getEncoding()
tagastab meetod määratud märgikodeeringu.
Märkus . Me kasutasime Charset.forName()
meetodit märkide kodeerimise tüübi määramiseks. Lisateabe saamiseks külastage Java Charset (ametlik Java dokumentatsioon).
close () meetod
Väljundvoo kirjutaja sulgemiseks saame kasutada close()
meetodit. Kui close()
meetod on välja kutsutud, ei saa me andmete kirjutamiseks kirjutajat kasutada.
Muud OutputStreamWriteri meetodid
Meetod | Kirjeldus |
---|---|
flush() | sunnib kirjutama kõik kirjutaja juures olevad andmed vastavasse sihtkohta |
append() | lisab määratud märgi praegusele kirjutajale |
Lisateabe saamiseks külastage Java OutputStreamWriterit (ametlik Java dokumentatsioon).