V tomto tutoriálu se pomocí příkladů dozvíme o třídě Java PrintStream a jejích metodách print () a printf ().
PrintStream
Třída java.io
obalu 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ů PrintStream
př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é PrintStream
tří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 : PrintStream
Tří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.PrintStream
nejprve 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 PrintStream
zapisujte 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 Charset
tří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
PrintStream
Tří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 prouduprintln()
- 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 PrintStream
tří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ýstupuout
je proměnná třídyPrintStream
typu deklarovaná veSystem
třídě
Nyní, protože out
je PrintStream
typu, můžeme jej použít k volání všech metod PrintStream
tří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).