Java PrintStream (s príkladmi)

V tomto tutoriále sa pomocou príkladov dozvieme o triede Java PrintStream a jej metódach print () a printf ().

PrintStreamTrieda java.ioobalu 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 PrintStreamprevá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 PrintStreamtrieda 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 : PrintStreamTrieda 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.PrintStreambalí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 PrintStreamzapisujte ú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 Charsettriedy zadali kódovanie znakov. Ak sa chcete dozvedieť viac, navštívte Java Charset (oficiálna dokumentácia Java).

Metódy PrintStream

PrintStreamTrieda 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 toku
  • println() - 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 PrintStreamtriedy.

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ýstupu
  • outje triedna premenná PrintStreamtypu deklarovaná v Systemtriede

Pretože outje teraz PrintStreamtypu, môžeme ho použiť na vyvolanie všetkých metód PrintStreamtriedy.

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).

Zaujímavé články...