Š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.
PrintStreamNo klases java.iopaketē 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 PrintStreamprimitī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ī PrintStreamklase neizmet nevienu ievades / izvades izņēmumu. Tā vietā mums ir jāizmanto checkError()metode, lai tajā atrastu kļūdas.
Piezīme : PrintStreamKlasei 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.PrintStreampakete. 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 PrintStreamdatus 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 Charsetklasi, lai norādītu rakstzīmju kodējumu. Lai uzzinātu vairāk, apmeklējiet Java Charset (oficiālā Java dokumentācija).
PrintStream metodes
PrintStreamKlase 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,
Systemir pēdējā klase, kas ir atbildīga par standarta ievades / izvades darbību veikšanuoutir klases mainīgais, kasPrintStreamdeklarētsSystemklasē
Tā kā outtas ir PrintStreamtipa, mēs varam to izmantot, lai izsauktu visas PrintStreamklases 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).








