U ovom uputstvu uz primjere ćemo naučiti o Java OutputStreamWriter i njegovim metodama.
OutputStreamWriter
Razred java.io
paket se može koristiti za pretvaranje podataka u znak obliku u podatke u bajtovima obliku.
Proširuje apstraktnu klasu Writer
.
OutputStreamWriter
Klasa radi s drugim izlaznim tokovima. Poznat je i kao most između tokova bajtova i tokova znakova. To je zato što OutputStreamWriter
pretvara 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.OutputStreamWriter
paket. 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 OutputStreamWriter
imenovani izlaz zajedno s FileOutputStream
imenovanom 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 Charset
klasu koristili za određivanje vrste kodiranja znakova.
Metode OutputStreamWriter
OutputStreamWriter
Klasa pruža implementacije za različite metode prezentirati u Writer
razredu.
metoda write ()
write()
- napiše jedan lik piscuwrite(char() array)
- zapisuje znakove iz navedenog niza u pisacwrite(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).