V tej vadnici bomo s pomočjo primerov spoznali Java OutputStreamWriter in njegove metode.
OutputStreamWriter
Razred java.io
paket se lahko uporablja za podatke pretvoriti v obliki znakov v podatkih v bajti obliki.
Razširja abstraktni razred Writer
.
OutputStreamWriter
Razred sodeluje z drugimi izhodnih tokov. Znan je tudi kot most med bajt tokovi in tokovi znakov. To pa zato, ker OutputStreamWriter
pretvori svoje znake v bajte.
Nekateri znaki na primer zahtevajo, da se v bazo shranijo 2 bajta. Za zapis takšnih podatkov lahko uporabimo zapisovalnik izhodnega toka, ki znak pretvori v ustrezne bajte in jih skupaj shrani.
Ustvarite OutputStreamWriter
Če želite ustvariti OutputStreamWriter
, moramo najprej uvoziti java.io.OutputStreamWriter
paket. Ko uvozimo paket, je tukaj, kako lahko ustvarimo zapisovalnik izhodnega toka.
// Creates an OutputStream FileOutputStream file = new FileOutputStream(String path); // Creates an OutputStreamWriter OutputStreamWriter output = new OutputStreamWriter(file);
V zgornjem primeru smo OutputStreamWriter
skupaj z FileOutputStream
imenovano datoteko ustvarili imenovani izhod .
Tu za pripisovanje znakov v izhodni tok uporabljamo privzeto kodiranje znakov.
Lahko pa določimo vrsto kodiranja znakov ( UTF8 ali UTF16 ), ki se bo uporabljala za zapisovanje podatkov.
// Creates an OutputStreamWriter specifying the character encoding OutputStreamWriter output = new OutputStreamWriter(file, Charset cs);
Tu smo uporabili Charset
razred za določitev vrste kodiranja znakov.
Metode OutputStreamWriter
OutputStreamWriter
Razred določa izvedb za različne načine predstaviti v Writer
razredu.
metoda write ()
write()
- piše pisatelju en sam likwrite(char() array)
- zapisuje znake iz določene matrike v zapisovalnikwrite(String data)
- zapiše določen niz v zapisovalnik
Primer: OutputStreamWriter za zapisovanje podatkov v datoteko
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(); ) ) )
V zgornjem primeru smo z izhodnim tokom datoteke ustvarili bralnik izhodnega toka. Čitalnik izhodnega toka je povezan z datoteko output.txt .
FileOutputStream file = new FileOutputStream("output.txt"); OutputStreamWriter output = new OutputStreamWriter(file);
Za zapisovanje podatkov v datoteko smo uporabili write()
metodo.
Ko zaženemo program, je datoteka output.txt napolnjena z naslednjo vsebino.
This is a line of text inside the file.
metoda getEncoding ()
getEncoding()
Metoda se lahko uporablja, da bi dobili vrsto kodiranja, ki se uporablja za podatke napisati na izhodnih tokov. Na primer
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(); ) ) )
Izhod
Kodiranje znakov izhoda1: Cp1252 Kodiranje znakov izhoda2: UTF8
V zgornjem primeru smo ustvarili 2 zapisovalnika izhodnih tokov z imenom output1 in output2.
- output1 ne določa kodiranja znakov. Zato
getEncoding()
metoda vrne privzeto kodiranje znakov. - output2 določa kodiranje znakov, UTF8 . Zato
getEncoding()
metoda vrne določeno kodiranje znakov.
Opomba : Z Charset.forName()
metodo smo določili vrsto kodiranja znakov. Če želite izvedeti več, obiščite Java Charset (uradna dokumentacija Java).
metoda close ()
Za zapiranje zapisovalnika izhodnega toka lahko uporabimo close()
metodo. Ko je close()
metoda enkrat poklicana, ne moremo uporabiti zapisovalnika za zapis podatkov.
Druge metode OutputStreamWriter
Metoda | Opis |
---|---|
flush() | prisili, da vse podatke v zapisovalniku zapiše na ustrezen cilj |
append() | vstavi določen znak trenutnemu zapisovalniku |
Če želite izvedeti več, obiščite Java OutputStreamWriter (uradna dokumentacija Java).