Java OutputStreamWriter (s primjerima)

U ovom uputstvu uz primjere ćemo naučiti o Java OutputStreamWriter i njegovim metodama.

OutputStreamWriterRazred java.iopaket se može koristiti za pretvaranje podataka u znak obliku u podatke u bajtovima obliku.

Proširuje apstraktnu klasu Writer.

OutputStreamWriterKlasa radi s drugim izlaznim tokovima. Poznat je i kao most između tokova bajtova i tokova znakova. To je zato što OutputStreamWriterpretvara svoje znakove u bajtove.

Na primjer, neki znakovi zahtijevaju da se 2 bajta pohrane u spremište. Za pisanje takvih podataka možemo koristiti zapisnik izlaznog toka koji pretvara znak u odgovarajuće bajtove i zajedno ih pohranjuje.

Stvorite OutputStreamWriter

Da bismo stvorili OutputStreamWriter, prvo moramo uvesti java.io.OutputStreamWriterpaket. Jednom kada uvozimo paket, evo kako možemo stvoriti zapisnik izlaznog toka.

 // Creates an OutputStream FileOutputStream file = new FileOutputStream(String path); // Creates an OutputStreamWriter OutputStreamWriter output = new OutputStreamWriter(file); 

U gornjem primjeru stvorili smo OutputStreamWriterimenovani izlaz zajedno s FileOutputStreamimenovanom datotekom.

Ovdje koristimo zadano kodiranje znakova za upisivanje znakova u izlazni tok.

Međutim, možemo odrediti vrstu kodiranja znakova ( UTF8 ili UTF16 ) koja će se koristiti za pisanje podataka.

 // Creates an OutputStreamWriter specifying the character encoding OutputStreamWriter output = new OutputStreamWriter(file, Charset cs); 

Ovdje smo Charsetklasu koristili za određivanje vrste kodiranja znakova.

Metode OutputStreamWriter

OutputStreamWriterKlasa pruža implementacije za različite metode prezentirati u Writerrazredu.

metoda write ()

  • write() - napiše jedan lik piscu
  • write(char() array) - zapisuje znakove iz navedenog niza u pisac
  • write(String data) - zapisuje navedeni niz piscu

Primjer: OutputStreamWriter za upisivanje podataka u datoteku

 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(); ) ) ) 

U gornjem primjeru stvorili smo čitač izlaznog toka koristeći izlazni tok datoteke. Čitač izlaznog toka povezan je s datotekom output.txt .

 FileOutputStream file = new FileOutputStream("output.txt"); OutputStreamWriter output = new OutputStreamWriter(file); 

Za pisanje podataka u datoteku koristili smo write()metodu.

Ovdje, kada pokrenemo program, datoteka output.txt puni se sljedećim sadržajem.

 This is a line of text inside the file. 

getEncoding () metoda

getEncoding()Metoda se može koristiti kako bi dobili tip kodiranja koji se koristi podacima pisati u izlazni tok. Na primjer,

 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(); ) ) ) 

Izlaz

 Kodiranje znakova izlaza1: Cp1252 Kodiranje znakova izlaza2: UTF8 

U gornjem primjeru stvorili smo 2 pisača izlaznih tokova pod nazivom output1 i output2.

  • output1 ne navodi kodiranje znakova. Stoga getEncoding()metoda vraća zadano kodiranje znakova.
  • output2 navodi kodiranje znakova, UTF8 . Stoga getEncoding()metoda vraća navedeno kodiranje znakova.

Napomena : Charset.forName()Metodom smo odredili vrstu kodiranja znakova. Da biste saznali više, posjetite Java Charset (službena Java dokumentacija).

close () Metoda

Da bismo zatvorili zapisnik izlaznog toka, možemo koristiti close()metodu. Jednom kada se close()metoda pozove, ne možemo koristiti zapisnik za upisivanje podataka.

Ostale metode OutputStreamWriter

Metoda Opis
flush() prisiljava upisivanje svih podataka prisutnih u zapisu na odgovarajuće odredište
append() umetne navedeni lik u trenutni pisac

Da biste saznali više, posjetite Java OutputStreamWriter (službena Java dokumentacija).

Zanimljivi članci...