W tym samouczku dowiemy się o klasie Java PrintStream oraz jej metodach print () i printf () na podstawie przykładów.
PrintStreamKlasa java.iopakietu mogą być wykorzystywane do zapisywania danych wyjściowych w postaci powszechnie czytelnej (tekst) zamiast bajtów.
Rozszerza klasę abstrakcyjną OutputStream.

Działanie PrintStream
W przeciwieństwie do innych strumieni wyjściowych, PrintStreamkonwertuje dane pierwotne (liczbę całkowitą, znak) na format tekstowy zamiast bajtów. Następnie zapisuje te sformatowane dane w strumieniu wyjściowym.
Ponadto PrintStreamklasa nie zgłasza żadnego wyjątku wejścia / wyjścia. Zamiast tego musimy użyć checkError()metody, aby znaleźć w niej dowolny błąd.
Uwaga : PrintStreamklasa posiada również funkcję automatycznego spłukiwania. Oznacza to, że wymusza na strumieniu wyjściowym zapisanie wszystkich danych do miejsca docelowego pod jednym z następujących warunków:
- jeśli znak nowej linii
jest zapisywany w strumieniu wydruku - jeśli
println()metoda jest wywoływana - jeśli tablica bajtów jest zapisywana w strumieniu wydruku
Utwórz PrintStream
Aby utworzyć plik PrintStream, musimy najpierw zaimportować java.io.PrintStreampakiet. Po zaimportowaniu pakietu tutaj możemy utworzyć strumień wydruku.
1. Korzystanie z innych strumieni wyjściowych
// Creates a FileOutputStream FileOutputStream file = new FileOutputStream(String file); // Creates a PrintStream PrintStream output = new PrintStream(file, autoFlush);
Tutaj,
- stworzyliśmy strumień wydruku, który zapisze sformatowane dane do pliku reprezentowanego przez
FileOutputStream - autoFlush to opcjonalny parametr boolowski, który określa, czy wykonać automatyczne opróżnianie, czy nie
2. Używając nazwy pliku
// Creates a PrintStream PrintStream output = new PrintStream(String file, boolean autoFlush);
Tutaj,
- stworzyliśmy strumień wydruku, który zapisze sformatowane dane do określonego pliku
- autoFlush to opcjonalny parametr boolowski, który określa, czy wykonać autoflush, czy nie
Uwaga : W obu przypadkach PrintStreamzapis danych do pliku przy użyciu domyślnego kodowania znaków. Możemy jednak określić również kodowanie znaków ( UTF8 lub UTF16 ).
// Creates a PrintStream using some character encoding PrintStream output = new PrintStream(String file, boolean autoFlush, Charset cs);
Tutaj użyliśmy tej Charsetklasy do określenia kodowania znaków. Aby dowiedzieć się więcej, odwiedź Java Charset (oficjalna dokumentacja Java).
Metody PrintStream
PrintStreamKlasa udostępnia różne metody, które pozwalają nam drukować dane do wyjścia.
print () Metoda
print()- wypisuje określone dane do strumienia wyjściowegoprintln()- wypisuje dane do strumienia wyjściowego wraz ze znakiem nowego wiersza na końcu
Przykład: metoda print () z klasą System
class Main ( public static void main(String() args) ( String data = "Hello World."; System.out.print(data); ) )
Wynik
Witaj świecie.
W powyższym przykładzie nie utworzyliśmy strumienia wydruku. Możemy jednak skorzystać z print()metody PrintStreamklasy.
Możesz się zastanawiać, jak to możliwe. Cóż, pozwól mi wyjaśnić, co się tutaj dzieje.
Zwróć uwagę na linię,
System.out.print(data);
Tutaj,
Systemjest ostatnią klasą odpowiedzialną za wykonywanie standardowych operacji wejścia / wyjściaoutjest zmienną klasowąPrintStreamtypu zadeklarowanego wSystemklasie
Ponieważ outjest to PrintStreamtyp, możemy go użyć do wywołania wszystkich metod PrintStreamklasy.
Przykład: metoda print () z klasą 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(); ) ) )
W powyższym przykładzie utworzyliśmy strumień wydruku o nazwie output. Strumień wydruku jest powiązany z plikiem output.txt .
PrintStream output = new PrintStream("output.txt");
Aby wydrukować dane do pliku, skorzystaliśmy z print()metody.
Tutaj, kiedy uruchamiamy program, plik output.txt jest wypełniony następującą treścią.
This is a text inside the file.
printf () Metoda
printf()Metoda może być stosowana do drukowania sformatowany ciąg. Zawiera 2 parametry: sformatowany ciąg i argumenty. Na przykład,
printf("I am %d years old", 25);
Tutaj,
- Mam% d lat to sformatowany ciąg
- % d to liczba całkowita w sformatowanym ciągu
- 25 to argument
Sformatowany ciąg zawiera zarówno tekst, jak i dane. Argumenty zastępują dane wewnątrz sformatowanego ciągu.
Stąd % d zostaje zastąpione przez 25 .
Przykład: metoda printf () używająca 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(); ) ) )
W powyższym przykładzie utworzyliśmy strumień wydruku o nazwie output. Strumień wydruku jest powiązany z plikiem output.txt .
PrintStream output = new PrintStream("output.txt");
Aby wydrukować sformatowany tekst do pliku, skorzystaliśmy z printf()metody.
Tutaj, kiedy uruchamiamy program, plik output.txt jest wypełniony następującą treścią.
I am 25 years old.
Inne metody PrintStream
| Metody | Opisy |
|---|---|
close() | zamyka strumień wydruku |
checkError() | sprawdza, czy w strumieniu jest błąd i zwraca wynik boolowski |
append() | dołącza określone dane do strumienia |
Aby dowiedzieć się więcej, odwiedź witrynę Java PrintStream (oficjalna dokumentacja Java).








