V tomto tutoriále sa pomocou príkladov dozvieme o triede Java PrintStream a jej metódach print () a printf ().
PrintStream
Trieda java.io
obalu možno použiť na zápis výstupných dát v bežne čitateľnej forme (text) namiesto bajtov.
Rozširuje abstraktnú triedu OutputStream
.
Funguje PrintStream
Na rozdiel od iných výstupných tokov PrintStream
prevádza primitívne údaje (celé číslo, znak) do textového formátu namiesto bajtov. Potom tieto formátované údaje zapíše do výstupného toku.
A tiež je PrintStream
trieda nevyhodí žiadny vstupný / výstupný výnimku. Namiesto toho musíme použiť checkError()
metódu na nájdenie akejkoľvek chyby v ňom.
Poznámka : PrintStream
Trieda má tiež funkciu automatického splachovania. To znamená, že núti výstupný prúd zapisovať všetky údaje do cieľa za jednej z nasledujúcich podmienok:
- ak
je v tlačovom prúde napísaný znak nového riadku
- ak je
println()
metóda vyvolaná - ak je v tlačovom prúde zapísané pole bajtov
Vytvorte PrintStream
Aby sme vytvorili PrintStream
, musíme najskôr importovať java.io.PrintStream
balík. Po importovaní balíka tu môžeme vytvoriť tlačový prúd.
1. Použitie ďalších výstupných tokov
// Creates a FileOutputStream FileOutputStream file = new FileOutputStream(String file); // Creates a PrintStream PrintStream output = new PrintStream(file, autoFlush);
Tu,
- vytvorili sme tlačový prúd, ktorý bude zapisovať formátované údaje do súboru predstavovaného
FileOutputStream
- autoFlush je voliteľný boolovský parameter, ktorý určuje, či sa má alebo nemá vykonávať automatické vyprázdňovanie
2. Pomocou názvu súboru
// Creates a PrintStream PrintStream output = new PrintStream(String file, boolean autoFlush);
Tu,
- vytvorili sme tlačový prúd, ktorý bude zapisovať formátované údaje do zadaného súboru
- autoFlush je voliteľný boolovský parameter, ktorý určuje, či sa má alebo nemá vykonávať automatické vypúšťanie
Poznámka : V obidvoch prípadoch PrintStream
zapisujte údaje do súboru pomocou niektorého predvoleného kódovania znakov. Môžeme však určiť aj kódovanie znakov ( UTF8 alebo UTF16 ).
// Creates a PrintStream using some character encoding PrintStream output = new PrintStream(String file, boolean autoFlush, Charset cs);
Tu sme pomocou Charset
triedy zadali kódovanie znakov. Ak sa chcete dozvedieť viac, navštívte Java Charset (oficiálna dokumentácia Java).
Metódy PrintStream
PrintStream
Trieda ponúka celý rad možností, ktoré nám umožňujú tlačiť dáta na výstup.
metóda print ()
print()
- vypíše zadané údaje do výstupného tokuprintln()
- vytlačí údaje do výstupného toku spolu s novým znakom riadku na konci
Príklad: metóda print () s triedou System
class Main ( public static void main(String() args) ( String data = "Hello World."; System.out.print(data); ) )
Výkon
Ahoj svet
Vo vyššie uvedenom príklade sme nevytvorili tlačový prúd. Môžeme však použiť print()
metódu PrintStream
triedy.
Možno by vás zaujímalo, ako je to možné. No, dovoľte mi vysvetliť, čo sa tu deje.
Všimnite si riadok,
System.out.print(data);
Tu,
System
je konečná trieda, ktorá je zodpovedná za vykonávanie štandardných operácií vstupu a výstupuout
je triedna premennáPrintStream
typu deklarovaná vSystem
triede
Pretože out
je teraz PrintStream
typu, môžeme ho použiť na vyvolanie všetkých metód PrintStream
triedy.
Príklad: metóda print () s triedou 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(); ) ) )
In the above example, we have created a print stream named output. The print stream is linked with the output.txt file.
PrintStream output = new PrintStream("output.txt");
To print data to the file, we have used the print()
method.
Here, when we run the program, the output.txt file is filled with the following content.
This is a text inside the file.
printf() Method
The printf()
method can be used to print the formatted string. It includes 2 parameters: formatted string and arguments. For example,
printf("I am %d years old", 25);
Here,
- I am %d years old is a formatted string
- %d is integer data in the formatted string
- 25 is an argument
The formatted string includes both text and data. And, the arguments replace the data inside the formatted string.
Hence the %d is replaced by 25.
Example: printf() method using 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(); ) ) )
Vo vyššie uvedenom príklade sme vytvorili tlačový prúd s názvom výstup. Tlačový prúd je prepojený so súborom output.txt .
PrintStream output = new PrintStream("output.txt");
Na vytlačenie formátovaného textu do súboru sme použili printf()
metódu.
Tu, keď spustíme program, je súbor output.txt naplnený nasledujúcim obsahom.
I am 25 years old.
Ďalšie metódy PrintStream
Metódy | Popisy |
---|---|
close() | zatvorí tlačový prúd |
checkError() | skontroluje, či nie je chyba v streame, a vráti boolovský výsledok |
append() | pripojí zadané údaje k streamu |
Ak sa chcete dozvedieť viac, navštívte Java PrintStream (oficiálna dokumentácia Java).