Java OutputStreamWriter (koos näidetega)

Selles õpetuses õpime näidete abil Java OutputStreamWriterit ja selle meetodeid.

OutputStreamWriterKlassi java.iopakett saab kasutada teisendada andmeid iseloomu vormi arvesse andmete baitide kujul.

See laiendab abstraktset klassi Writer.

OutputStreamWriterKlassi töötab koos teiste tulostevirrat. Seda tuntakse ka sillana baitivoogude ja märgivoogude vahel. Seda seetõttu, et OutputStreamWriterteisendab oma tähemärgid baitideks.

Näiteks vajavad mõned tähemärgid 2 baiti salvestusruumi salvestamist. Selliste andmete kirjutamiseks võime kasutada väljundvoo kirjutajat, mis teisendab märgi vastavateks baitideks ja salvestab baidid koos.

Looge OutputStreamWriter

Selle loomiseks OutputStreamWriterpeame java.io.OutputStreamWriteresmalt pakendi importima . Kui pakett on siin imporditud, saame väljundvoo kirjutaja luua.

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

Ülalolevas näites oleme OutputStreamWriterkoos FileOutputStreamnimega failiga loonud nimelise väljundi .

Siin kasutame väljundvoogu märkide kirjutamiseks vaikimisi märgikodeeringut.

Kuid me saame määrata andmete kirjutamiseks kasutatava märgikodeeringu tüübi ( UTF8 või UTF16 ).

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

Siin oleme kasutanud Charsetklassi, et määrata märkide kodeeringu tüüp.

OutputStreamWriteri meetodid

OutputStreamWriterTasemega näeb implementation erinevaid meetodeid sisalduse funktsioon Writertasemega.

kirjuta () meetod

  • write() - kirjutab kirjanikule ühe tegelase
  • write(char() array) - kirjutab tähemärgid määratud massiivist kirjutajale
  • write(String data) - kirjutab määratud stringi kirjutajale

Näide: OutputStreamWriter andmete faili kirjutamiseks

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

Ülaltoodud näites oleme failiväljundi voo abil loonud väljundvoo lugeja. Väljundvoo lugeja on lingitud failiga output.txt .

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

Andmete faili kirjutamiseks oleme kasutanud write()meetodit.

Siin on programmi käivitamisel fail output.txt täidetud järgmise sisuga.

 This is a line of text inside the file. 

getEncoding () meetod

getEncoding()Meetodit saab kasutada, et saada kodeerimistüüp, mida kasutatakse kirjutada andmeid toodangu voog. Näiteks,

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

Väljund

 Väljundi1: Cp1252 märkekodeering: väljundi2: UTF8 tähemärgikodeering 

Ülaltoodud näites oleme loonud 2 väljundvoo kirjutajat nimega output1 ja output2.

  • väljund1 ei määra märkide kodeerimist. Seega getEncoding()tagastab meetod vaikimisi märgikodeeringu.
  • väljund2 määrab märkide kodeerimise UTF8 . Seega getEncoding()tagastab meetod määratud märgikodeeringu.

Märkus . Me kasutasime Charset.forName()meetodit märkide kodeerimise tüübi määramiseks. Lisateabe saamiseks külastage Java Charset (ametlik Java dokumentatsioon).

close () meetod

Väljundvoo kirjutaja sulgemiseks saame kasutada close()meetodit. Kui close()meetod on välja kutsutud, ei saa me andmete kirjutamiseks kirjutajat kasutada.

Muud OutputStreamWriteri meetodid

Meetod Kirjeldus
flush() sunnib kirjutama kõik kirjutaja juures olevad andmed vastavasse sihtkohta
append() lisab määratud märgi praegusele kirjutajale

Lisateabe saamiseks külastage Java OutputStreamWriterit (ametlik Java dokumentatsioon).

Huvitavad Artiklid...