Šajā apmācībā mēs uzzināsim par Java OutputStreamWriter un tā metodēm ar piemēru palīdzību.
OutputStreamWriter
No klases java.io
paketē var izmantot, lai pārveidotu datus rakstzīmju veidā par datu baiti formā.
Tas paplašina abstrakto klasi Writer
.
OutputStreamWriter
Klasē 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 OutputStreamWriter
pā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.OutputStreamWriter
pakete. 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 OutputStreamWriter
nosauktu izvadi kopā ar FileOutputStream
nosaukto 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 Charset
klasi, lai norādītu rakstzīmju kodēšanas veidu.
OutputStreamWriter metodes
OutputStreamWriter
Klase nodrošina implementācijas dažādām metodēm prezentēt šajā Writer
klasē.
write () metode
write()
- raksta rakstniekam vienu varoniwrite(char() array)
- raksta rakstniekam rakstzīmes no norādītā masīvawrite(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).