Java OutputStreamWriter (ar piemēriem)

Šajā apmācībā mēs uzzināsim par Java OutputStreamWriter un tā metodēm ar piemēru palīdzību.

OutputStreamWriterNo klases java.iopaketē var izmantot, lai pārveidotu datus rakstzīmju veidā par datu baiti formā.

Tas paplašina abstrakto klasi Writer.

OutputStreamWriterKlasē strādā ar citiem izvades plūsmām. Tas ir arī pazīstams kā tilts starp baitu straumēm un rakstzīmju straumēm. Tas ir tāpēc, ka OutputStreamWriterpārvērš savas rakstzīmes baitos.

Piemēram, dažām rakstzīmēm krātuvē ir jāglabā 2 baiti. Lai rakstītu šādus datus, mēs varam izmantot izvades plūsmas rakstītāju, kas pārveido rakstzīmi attiecīgajos baitos un kopā glabā baitus.

Izveidojiet OutputStreamWriter

Lai izveidotu OutputStreamWriter, mums vispirms ir jāimportē java.io.OutputStreamWriterpakete. Kad mēs importēsim pakotni, mēs varēsim izveidot izvades straumes rakstītāju.

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

Iepriekš minētajā piemērā mēs esam izveidojuši OutputStreamWriternosauktu izvadi kopā ar FileOutputStreamnosaukto failu.

Šeit mēs izmantojam noklusējuma rakstzīmju kodējumu, lai rakstītu rakstzīmes izvades straumē.

Tomēr mēs varam norādīt rakstzīmju kodēšanas veidu ( UTF8 vai UTF16 ), kas jāizmanto datu rakstīšanai.

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

Šeit mēs izmantojām Charsetklasi, lai norādītu rakstzīmju kodēšanas veidu.

OutputStreamWriter metodes

OutputStreamWriterKlase nodrošina implementācijas dažādām metodēm prezentēt šajā Writerklasē.

write () metode

  • write() - raksta rakstniekam vienu varoni
  • write(char() array) - raksta rakstniekam rakstzīmes no norādītā masīva
  • write(String data) - raksta rakstniekam norādīto virkni

Piemērs: OutputStreamWriter, lai ierakstītu datus failā

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

Iepriekš minētajā piemērā mēs esam izveidojuši izvades straumes lasītāju, izmantojot faila izvades straumi. Izejas plūsmas lasītājs ir saistīts ar failu output.txt .

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

Lai ierakstītu datus failā, mēs izmantojām write()metodi.

Šeit, palaižot programmu, fails output.txt tiek aizpildīts ar šādu saturu.

 This is a line of text inside the file. 

getEncoding () metode

getEncoding()Metodi var izmantot, lai iegūtu kodēšanas veids, kas tiek izmantots, lai rakstītu datus uz izejas plūsmā. Piemēram,

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

Rezultāts

 Output1: Cp1252 rakstzīmju kodējums: output2: UTF8 

Iepriekš minētajā piemērā mēs esam izveidojuši 2 izvades plūsmas rakstītājus nosaukumus output1 un output2.

  • output1 nenorāda rakstzīmju kodējumu. Tādējādi getEncoding()metode atgriež noklusējuma rakstzīmju kodējumu.
  • output2 norāda rakstzīmju kodējumu UTF8 . Tādējādi getEncoding()metode atgriež norādīto rakstzīmju kodējumu.

Piezīme . Mēs izmantojām Charset.forName()metodi, lai norādītu rakstzīmju kodēšanas veidu. Lai uzzinātu vairāk, apmeklējiet Java Charset (oficiālā Java dokumentācija).

aizvērt () metode

Lai aizvērtu izvades straumes rakstītāju, mēs varam izmantot close()metodi. Kad close()metode ir izsaukta, mēs nevaram izmantot rakstītāju datu rakstīšanai.

Citas OutputStreamWriter metodes

Metode Apraksts
flush() liek rakstīt visus rakstītājā esošos datus uz attiecīgo galamērķi
append() ievieto norādīto rakstzīmi pašreizējam rakstītājam

Lai uzzinātu vairāk, apmeklējiet Java OutputStreamWriter (oficiālā Java dokumentācija).

Interesanti raksti...