Java OutputStreamWriter (esimerkkien kanssa)

Tässä opetusohjelmassa opit Java OutputStreamWriteristä ja sen menetelmistä esimerkkien avulla.

OutputStreamWriterLuokan java.iopaketti voidaan käyttää muuntaa datan merkin muodosta tavuina muodossa.

Se laajentaa abstraktia luokkaa Writer.

OutputStreamWriterLuokka toimii muiden lähtövirtaa. Se tunnetaan myös sillana tavuvirtojen ja merkkivirtausten välillä. Tämä johtuu siitä, että se OutputStreamWritermuuntaa 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 OutputStreamWritermeidän on java.io.OutputStreamWriterensin 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 OutputStreamWriternimetyn lähdön FileOutputStreamnimetyn 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 Charsetluokkaa määrittelemään merkkikoodauksen tyypin.

OutputStreamWriter-menetelmät

OutputStreamWriterLuokka antaa toteutuksia eri menetelmiä esittää, että Writerluokan.

write () -menetelmä

  • write() - kirjoittaa yhden hahmon kirjailijalle
  • write(char() array) - kirjoittaa merkit määritetystä taulukosta kirjoittajalle
  • write(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).

Mielenkiintoisia artikkeleita...