Java PrintStream (z przykładami)

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ściowego
  • println() - 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,

  • System jest ostatnią klasą odpowiedzialną za wykonywanie standardowych operacji wejścia / wyjścia
  • outjest zmienną klasową PrintStreamtypu zadeklarowanego w Systemklasie

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

Interesujące artykuły...