Java PrintStream (s příklady)

V tomto tutoriálu se pomocí příkladů dozvíme o třídě Java PrintStream a jejích metodách print () a printf ().

PrintStreamTřída java.ioobalu lze použít k zápisu výstupních dat v běžně čitelné formě (text) namísto bajtů.

Rozšiřuje abstraktní třídu OutputStream.

Práce PrintStream

Na rozdíl od jiných výstupních proudů PrintStreampřevádí primitivní data (celé číslo, znak) do textového formátu namísto bajtů. Potom zapíše tato formátovaná data do výstupního proudu.

A také PrintStreamtřída nevyvolává žádnou výjimku vstupu / výstupu. Místo toho musíme použít checkError()metodu k vyhledání jakékoli chyby.

Poznámka : PrintStreamTřída má také funkci automatického proplachování. To znamená, že vynutí výstupní proud, aby zapisoval všechna data do cíle za jedné z následujících podmínek:

  • pokud je v tiskovém proudu zapsán znak nového řádku
  • pokud je println()metoda vyvolána
  • pokud je v tiskovém proudu zapsáno pole bajtů

Vytvořte PrintStream

Aby bylo možné vytvořit PrintStream, musíme java.io.PrintStreamnejprve importovat balíček. Jakmile naimportujeme balíček, můžeme vytvořit tiskový proud.

1. Použití dalších výstupních proudů

 // Creates a FileOutputStream FileOutputStream file = new FileOutputStream(String file); // Creates a PrintStream PrintStream output = new PrintStream(file, autoFlush); 

Tady,

  • vytvořili jsme tiskový proud, který zapíše formátovaná data do souboru představovaného FileOutputStream
  • autoFlush je volitelný logický parametr, který určuje, zda se má provádět automatické vyprazdňování nebo ne

2. Použití názvu souboru

  // Creates a PrintStream PrintStream output = new PrintStream(String file, boolean autoFlush); 

Tady,

  • vytvořili jsme tiskový proud, který zapíše formátovaná data do zadaného souboru
  • autoFlush je volitelný logický parametr, který určuje, zda se má provádět automatické vypouštění nebo ne

Poznámka : V obou případech PrintStreamzapisujte data do souboru pomocí některého výchozího kódování znaků. Můžeme však také určit kódování znaků ( UTF8 nebo UTF16 ).

 // Creates a PrintStream using some character encoding PrintStream output = new PrintStream(String file, boolean autoFlush, Charset cs); 

Zde jsme použili Charsettřídu k určení kódování znaků. Chcete-li se dozvědět více, navštivte Java Charset (oficiální dokumentace Java).

Metody PrintStream

PrintStreamTřída nabízí celou řadu možností, které nám umožňují tisknout data na výstup.

metoda print ()

  • print() - vytiskne zadaná data do výstupního proudu
  • println() - vytiskne data do výstupního proudu spolu s novým znakem řádku na konci

Příklad: metoda print () s třídou System

 class Main ( public static void main(String() args) ( String data = "Hello World."; System.out.print(data); ) ) 

Výstup

 Ahoj světe. 

Ve výše uvedeném příkladu jsme nevytvořili tiskový proud. Můžeme však použít print()metodu PrintStreamtřídy.

Možná by vás zajímalo, jak je to možné. Dovolte mi vysvětlit, co se tady děje.

Všimněte si řádku,

 System.out.print(data); 

Tady,

  • System je finální třída, která je odpovědná za provádění standardní operace vstupu / výstupu
  • outje proměnná třídy PrintStreamtypu deklarovaná ve Systemtřídě

Nyní, protože outje PrintStreamtypu, můžeme jej použít k volání všech metod PrintStreamtřídy.

Příklad: metoda print () s třídou 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(); ) ) ) 

Ve výše uvedeném příkladu jsme vytvořili tiskový proud s názvem výstup. Tiskový proud je propojen se souborem output.txt .

 PrintStream output = new PrintStream("output.txt"); 

K tisku dat do souboru jsme použili print()metodu.

Tady, když spustíme program, je soubor output.txt naplněn následujícím obsahem.

 This is a text inside the file. 

metoda printf ()

printf()Metoda může být použita pro tisk formátovaný řetězec. Zahrnuje 2 parametry: formátovaný řetězec a argumenty. Například,

 printf("I am %d years old", 25); 

Tady,

  • Je mi% d let starý formátovaný řetězec
  • % d jsou celočíselná data ve formátovaném řetězci
  • 25 je argument

Formátovaný řetězec obsahuje text i data. Argumenty nahradí data uvnitř formátovaného řetězce.

Proto je % d nahrazeno 25 .

Příklad: metoda printf () pomocí 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(); ) ) ) 

Ve výše uvedeném příkladu jsme vytvořili tiskový proud s názvem výstup. Tiskový proud je propojen se souborem output.txt .

 PrintStream output = new PrintStream("output.txt"); 

K tisku formátovaného textu do souboru jsme použili printf()metodu.

Tady, když spustíme program, je soubor output.txt naplněn následujícím obsahem.

 I am 25 years old. 

Další metody PrintStream

Metody Popisy
close() zavře tiskový proud
checkError() zkontroluje, zda je ve streamu chyba, a vrátí logický výsledek
append() připojí zadaná data ke streamu

Další informace najdete v Java PrintStream (oficiální dokumentace Java).

Zajímavé články...