Java PrintStream (mit Beispielen)

In diesem Tutorial lernen wir anhand von Beispielen die Java PrintStream-Klasse und ihre Methoden print () und printf () kennen.

Die PrintStreamKlasse des java.ioPakets kann verwendet werden, um Ausgabedaten in allgemein lesbarer Form (Text) anstelle von Bytes zu schreiben.

Es erweitert die abstrakte Klasse OutputStream.

Arbeitsweise von PrintStream

Im Gegensatz zu anderen Ausgabestreams PrintStreamkonvertiert der die primitiven Daten (Ganzzahl, Zeichen) in das Textformat anstelle von Bytes. Anschließend werden die formatierten Daten in den Ausgabestream geschrieben.

Außerdem PrintStreamlöst die Klasse keine Eingabe- / Ausgabeausnahme aus. Stattdessen müssen wir die checkError()Methode verwenden, um Fehler darin zu finden.

Hinweis : Die PrintStreamKlasse verfügt auch über eine Funktion zum automatischen Spülen. Dies bedeutet, dass der Ausgabestream gezwungen wird, alle Daten unter einer der folgenden Bedingungen in das Ziel zu schreiben:

  • wenn ein Zeilenumbruchzeichen in den Druckstrom geschrieben wird
  • wenn die println()Methode aufgerufen wird
  • wenn ein Array von Bytes in den Druckstrom geschrieben wird

Erstellen Sie einen PrintStream

Um ein zu erstellen PrintStream, müssen wir java.io.PrintStreamzuerst das Paket importieren . Sobald wir das Paket hier importiert haben, können wir den Druckstrom erstellen.

1. Verwenden anderer Ausgabestreams

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

Hier,

  • Wir haben einen Druckdatenstrom erstellt, der formatierte Daten in die durch dargestellte Datei schreibt FileOutputStream
  • autoFlush ist ein optionaler boolescher Parameter, der angibt, ob eine automatische Spülung durchgeführt werden soll oder nicht

2. Verwenden Sie den Dateinamen

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

Hier,

  • Wir haben einen Druckdatenstrom erstellt, der formatierte Daten in die angegebene Datei schreibt
  • autoFlush ist ein optionaler boolescher Parameter, der angibt, ob Autoflush ausgeführt werden soll oder nicht

Hinweis : In beiden Fällen werden die PrintStreamDaten mit einer Standardzeichencodierung in die Datei geschrieben. Wir können jedoch auch die Zeichenkodierung ( UTF8 oder UTF16 ) angeben .

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

Hier haben wir die CharsetKlasse verwendet, um die Zeichenkodierung anzugeben. Weitere Informationen finden Sie unter Java Charset (offizielle Java-Dokumentation).

Methoden von PrintStream

Die PrintStreamKlasse bietet verschiedene Methoden, mit denen wir Daten in die Ausgabe drucken können.

print () Methode

  • print() - druckt die angegebenen Daten in den Ausgabestream
  • println() - druckt die Daten zusammen mit einem neuen Zeilenzeichen am Ende in den Ausgabestream

Beispiel: print () -Methode mit Systemklasse

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

Ausgabe

 Hallo Welt. 

Im obigen Beispiel haben wir keinen Druckstrom erstellt. Wir können jedoch die print()Methode der PrintStreamKlasse verwenden.

Sie fragen sich vielleicht, wie das möglich ist. Lassen Sie mich erklären, was hier passiert.

Beachten Sie die Linie,

 System.out.print(data); 

Hier,

  • System ist eine letzte Klasse, die für die Ausführung der Standardeingabe / -ausgabe verantwortlich ist
  • outist eine Klassenvariable vom PrintStreamTyp, die in der SystemKlasse deklariert ist

Da outes sich nun um einen PrintStreamTyp handelt, können wir damit alle PrintStreamKlassenmethoden aufrufen .

Beispiel: print () -Methode mit PrintStream-Klasse

 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(); ) ) ) 

Im obigen Beispiel haben wir einen Druckstrom mit dem Namen output erstellt. Der Druckstrom ist mit der Datei output.txt verknüpft .

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

Um Daten in die Datei zu drucken, haben wir die print()Methode verwendet.

Wenn wir das Programm ausführen , wird die Datei output.txt mit dem folgenden Inhalt gefüllt.

 This is a text inside the file. 

printf () Methode

Die printf()Methode kann verwendet werden, um die formatierte Zeichenfolge zu drucken. Es enthält 2 Parameter: formatierte Zeichenfolge und Argumente. Beispielsweise,

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

Hier,

  • Ich bin% d Jahre alt und habe eine formatierte Zeichenfolge
  • % d sind ganzzahlige Daten in der formatierten Zeichenfolge
  • 25 ist ein Argument

Die formatierte Zeichenfolge enthält sowohl Text als auch Daten. Die Argumente ersetzen die Daten in der formatierten Zeichenfolge.

Daher wird % d durch 25 ersetzt .

Beispiel: printf () -Methode mit 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(); ) ) ) 

Im obigen Beispiel haben wir einen Druckstrom mit dem Namen output erstellt. Der Druckstrom ist mit der Datei output.txt verknüpft .

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

Um den formatierten Text in die Datei zu drucken, haben wir die printf()Methode verwendet.

Wenn wir das Programm ausführen , wird die Datei output.txt mit dem folgenden Inhalt gefüllt.

 I am 25 years old. 

Andere Methoden von PrintStream

Methoden Beschreibungen
close() Schließt den Druckstrom
checkError() Überprüft, ob im Stream ein Fehler vorliegt, und gibt ein boolesches Ergebnis zurück
append() Hängt die angegebenen Daten an den Stream an

Weitere Informationen finden Sie unter Java PrintStream (offizielle Java-Dokumentation).

Interessante Beiträge...