Šajā apmācībā mēs ar piemēru palīdzību uzzināsim par Java PrintStream klasi un tās print () un printf () metodēm.
PrintStream
No klases java.io
paketē var izmantot, lai rakstītu izejas dati parasti lasāmā formā (teksts), nevis baitu.
Tas paplašina abstrakto klasi OutputStream
.
PrintStream darbs
Atšķirībā no citām izvades straumēm PrintStream
primitīvos datus (veselu skaitli, rakstzīmi) baitu vietā pārveido teksta formātā. Pēc tam tā raksta šos formatētos datus izejas plūsmā.
Un arī PrintStream
klase neizmet nevienu ievades / izvades izņēmumu. Tā vietā mums ir jāizmanto checkError()
metode, lai tajā atrastu kļūdas.
Piezīme : PrintStream
Klasei ir arī automātiskās skalošanas funkcija. Tas nozīmē, ka tas izejas straumei liek ierakstīt visus datus galamērķim ar vienu no šiem nosacījumiem:
- ja
drukas straumē ir ierakstīts jaunrindas raksturs
- ja
println()
tiek izmantota metode - ja drukas straumē ir ierakstīts baitu masīvs
Izveidojiet PrintStream
Lai izveidotu a PrintStream
, mums vispirms ir jāimportē java.io.PrintStream
pakete. Kad mēs importēsim pakotni, mēs varēsim izveidot drukas straumi.
1. Citu izvades plūsmu izmantošana
// Creates a FileOutputStream FileOutputStream file = new FileOutputStream(String file); // Creates a PrintStream PrintStream output = new PrintStream(file, autoFlush);
Šeit,
- mēs esam izveidojuši drukas straumi, kas formatētos datus ierakstīs failā, kuru pārstāv
FileOutputStream
- autoFlush ir papildu būla parametrs, kas norāda, vai veikt automātisko skalošanu
2. Faila nosaukuma izmantošana
// Creates a PrintStream PrintStream output = new PrintStream(String file, boolean autoFlush);
Šeit,
- mēs esam izveidojuši drukas straumi, kas formatētos datus ierakstīs norādītajā failā
- autoFlush ir izvēles būla parametrs, kas norāda, vai veikt automātisko skalošanu
Piezīme : Abos gadījumos PrintStream
datus rakstiet failā, izmantojot kādu noklusējuma rakstzīmju kodējumu. Tomēr mēs varam norādīt arī rakstzīmju kodējumu ( UTF8 vai UTF16 ).
// Creates a PrintStream using some character encoding PrintStream output = new PrintStream(String file, boolean autoFlush, Charset cs);
Šeit mēs izmantojām Charset
klasi, lai norādītu rakstzīmju kodējumu. Lai uzzinātu vairāk, apmeklējiet Java Charset (oficiālā Java dokumentācija).
PrintStream metodes
PrintStream
Klase nodrošina dažādas metodes, kas ļauj mums, lai drukātu datus izejas.
print () metode
print()
- izdrukā norādītos datus izejas straumēprintln()
- izdrukā datus izejas straumē kopā ar jaunu līnijas rakstzīmi beigās
Piemērs: metode print () ar sistēmas klasi
class Main ( public static void main(String() args) ( String data = "Hello World."; System.out.print(data); ) )
Rezultāts
Sveika pasaule.
Iepriekš minētajā piemērā mēs neesam izveidojuši drukas straumi. Tomēr mēs varam izmantot klases print()
metodi PrintStream
.
Jums varētu būt jautājums, kā tas ir iespējams. Nu, ļaujiet man paskaidrot, kas šeit notiek.
Ievērojiet līniju,
System.out.print(data);
Šeit,
System
ir pēdējā klase, kas ir atbildīga par standarta ievades / izvades darbību veikšanuout
ir klases mainīgais, kasPrintStream
deklarētsSystem
klasē
Tā kā out
tas ir PrintStream
tipa, mēs varam to izmantot, lai izsauktu visas PrintStream
klases metodes .
Piemērs: metode print () ar klasi PrintStream
import java.io.PrintStream; class Main ( public static void main(String() args) ( String data = "This is a text inside the file."; try ( PrintStream output = new PrintStream("output.txt"); output.print(data); output.close(); ) catch(Exception e) ( e.getStackTrace(); ) ) )
Iepriekš minētajā piemērā mēs esam izveidojuši drukas straumi ar nosaukumu output. Drukas straume ir saistīta ar failu output.txt .
PrintStream output = new PrintStream("output.txt");
Lai drukātu datus failā, mēs izmantojām print()
metodi.
Šeit, palaižot programmu, fails output.txt tiek aizpildīts ar šādu saturu.
This is a text inside the file.
printf () metode
printf()
Metodi var izmantot, lai drukātu formatētu virkni. Tas ietver 2 parametrus: formatētu virkni un argumentus. Piemēram,
printf("I am %d years old", 25);
Šeit,
- Es esmu% d gadus vecs, ir formatēta virkne
- % d ir veseli skaitļi dati formatētajā virknē
- 25 ir arguments
Formatētā virkne ietver gan tekstu, gan datus. Argumenti aizstāj datus formatētajā virknē.
Tādējādi % d tiek aizstāts ar 25 .
Piemērs: metode printf (), izmantojot PrintStream
import java.io.PrintStream; class Main ( public static void main(String() args) ( try ( PrintStream output = new PrintStream("output.txt"); int age = 25; output.printf("I am %d years old.", age); output.close(); ) catch(Exception e) ( e.getStackTrace(); ) ) )
Iepriekš minētajā piemērā mēs esam izveidojuši drukas straumi ar nosaukumu output. Drukas straume ir saistīta ar failu output.txt .
PrintStream output = new PrintStream("output.txt");
Lai drukātu failā formatēto tekstu, mēs izmantojām printf()
metodi.
Šeit, palaižot programmu, fails output.txt tiek aizpildīts ar šādu saturu.
I am 25 years old.
Citas PrintStream metodes
Metodes | Apraksti |
---|---|
close() | aizver drukas straumi |
checkError() | pārbauda, vai straumē ir kļūda, un atgriež būla rezultātu |
append() | pievieno straumei norādītos datus |
Lai uzzinātu vairāk, apmeklējiet Java PrintStream (oficiālā Java dokumentācija).