Java OutputStreamWriter (z primeri)

V tej vadnici bomo s pomočjo primerov spoznali Java OutputStreamWriter in njegove metode.

OutputStreamWriterRazred java.iopaket se lahko uporablja za podatke pretvoriti v obliki znakov v podatkih v bajti obliki.

Razširja abstraktni razred Writer.

OutputStreamWriterRazred sodeluje z drugimi izhodnih tokov. Znan je tudi kot most med bajt tokovi in ​​tokovi znakov. To pa zato, ker OutputStreamWriterpretvori 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.OutputStreamWriterpaket. 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 OutputStreamWriterskupaj z FileOutputStreamimenovano 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 Charsetrazred za določitev vrste kodiranja znakov.

Metode OutputStreamWriter

OutputStreamWriterRazred določa izvedb za različne načine predstaviti v Writerrazredu.

metoda write ()

  • write() - piše pisatelju en sam lik
  • write(char() array) - zapisuje znake iz določene matrike v zapisovalnik
  • write(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).

Zanimive Članki...