Tässä opetusohjelmassa opit Java OutputStreamWriteristä ja sen menetelmistä esimerkkien avulla.
OutputStreamWriter
Luokan java.io
paketti voidaan käyttää muuntaa datan merkin muodosta tavuina muodossa.
Se laajentaa abstraktia luokkaa Writer
.
OutputStreamWriter
Luokka toimii muiden lähtövirtaa. Se tunnetaan myös sillana tavuvirtojen ja merkkivirtausten välillä. Tämä johtuu siitä, että se OutputStreamWriter
muuntaa hahmot tavuiksi.
Esimerkiksi jotkut merkit edellyttävät 2 tavun tallentamista muistiin. Tällaisten tietojen kirjoittamiseen voimme käyttää lähtövirran kirjoitinta, joka muuntaa merkin vastaaviksi tavuiksi ja tallentaa tavut yhdessä.
Luo OutputStreamWriter
Paketin luomiseksi OutputStreamWriter
meidän on java.io.OutputStreamWriter
ensin tuotava paketti. Kun tuot paketin täältä, voimme luoda lähtövirran kirjoittajan.
// Creates an OutputStream FileOutputStream file = new FileOutputStream(String path); // Creates an OutputStreamWriter OutputStreamWriter output = new OutputStreamWriter(file);
Yllä olevassa esimerkissä olemme luoneet OutputStreamWriter
nimetyn lähdön FileOutputStream
nimetyn tiedoston kanssa.
Tässä käytämme oletusmerkkikoodausta merkkien kirjoittamiseen lähtövirtaan.
Voimme kuitenkin määritellä merkkien koodauksen tyypin ( UTF8 tai UTF16 ), jota käytetään tietojen kirjoittamiseen.
// Creates an OutputStreamWriter specifying the character encoding OutputStreamWriter output = new OutputStreamWriter(file, Charset cs);
Tässä olemme käyttäneet Charset
luokkaa määrittelemään merkkikoodauksen tyypin.
OutputStreamWriter-menetelmät
OutputStreamWriter
Luokka antaa toteutuksia eri menetelmiä esittää, että Writer
luokan.
write () -menetelmä
write()
- kirjoittaa yhden hahmon kirjailijallewrite(char() array)
- kirjoittaa merkit määritetystä taulukosta kirjoittajallewrite(String data)
- kirjoittaa määritetyn merkkijonon kirjoittajalle
Esimerkki: OutputStreamWriter kirjoittaa tietoja tiedostoon
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(); ) ) )
Edellä olevassa esimerkissä olemme luoneet lähtövirran lukijan käyttämällä tiedoston ulostulovirtaa. Lähtövirran lukija on linkitetty output.txt- tiedostoon.
FileOutputStream file = new FileOutputStream("output.txt"); OutputStreamWriter output = new OutputStreamWriter(file);
Tietojen kirjoittamiseen tiedostoon olemme käyttäneet write()
menetelmää.
Tässä, kun suoritamme ohjelmaa, output.txt- tiedosto täytetään seuraavalla sisällöllä.
This is a line of text inside the file.
getEncoding () -menetelmä
getEncoding()
Menetelmää voidaan käyttää saamaan tyypin koodaus, jota käytetään kirjoittaa tietoa poistovirtaan. Esimerkiksi,
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(); ) ) )
Tuotos
Lähdön1: Cp1252 merkkikoodaus: lähdön2: UTF8 merkkikoodaus
Yllä olevassa esimerkissä olemme luoneet 2 lähtövirran kirjoitinta nimeltä output1 ja output2.
- output1 ei määritä merkkikoodausta. Siksi
getEncoding()
menetelmä palauttaa oletusmerkkikoodauksen. - output2 määrittää merkkikoodauksen UTF8 . Siksi
getEncoding()
menetelmä palauttaa määritetyn merkkikoodauksen.
Huomaa : Olemme käyttäneet Charset.forName()
menetelmää merkkien koodauksen tyypin määrittämiseen. Lisätietoja on Java Charset -sivustossa (virallinen Java-dokumentaatio).
sulje () Menetelmä
Voit sulkea lähtövirran kirjoittajan käyttämällä close()
menetelmää. Kun close()
menetelmä on kutsuttu, emme voi käyttää kirjoitinta tietojen kirjoittamiseen.
Muut OutputStreamWriter-menetelmät
Menetelmä | Kuvaus |
---|---|
flush() | pakottaa kirjoittamaan kaikki kirjoittimessa olevat tiedot vastaavaan kohteeseen |
append() | lisää määritetyn merkin nykyiselle kirjoittajalle |
Lisätietoja on Java OutputStreamWriter -sivustossa (virallinen Java-dokumentaatio).