W tym samouczku dowiemy się o klasie Java PrintStream oraz jej metodach print () i printf () na podstawie przykładów.
PrintStream
Klasa java.io
pakietu 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, PrintStream
konwertuje dane pierwotne (liczbę całkowitą, znak) na format tekstowy zamiast bajtów. Następnie zapisuje te sformatowane dane w strumieniu wyjściowym.
Ponadto PrintStream
klasa 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 : PrintStream
klasa 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.PrintStream
pakiet. 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 PrintStream
zapis 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 Charset
klasy do określenia kodowania znaków. Aby dowiedzieć się więcej, odwiedź Java Charset (oficjalna dokumentacja Java).
Metody PrintStream
PrintStream
Klasa 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 PrintStream
klasy.
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,
System
jest ostatnią klasą odpowiedzialną za wykonywanie standardowych operacji wejścia / wyjściaout
jest zmienną klasowąPrintStream
typu zadeklarowanego wSystem
klasie
Ponieważ out
jest to PrintStream
typ, możemy go użyć do wywołania wszystkich metod PrintStream
klasy.
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).