In diesem Tutorial lernen wir anhand von Beispielen die Java PrintStream-Klasse und ihre Methoden print () und printf () kennen.
Die PrintStream
Klasse des java.io
Pakets 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 PrintStream
konvertiert der die primitiven Daten (Ganzzahl, Zeichen) in das Textformat anstelle von Bytes. Anschließend werden die formatierten Daten in den Ausgabestream geschrieben.
Außerdem PrintStream
löst die Klasse keine Eingabe- / Ausgabeausnahme aus. Stattdessen müssen wir die checkError()
Methode verwenden, um Fehler darin zu finden.
Hinweis : Die PrintStream
Klasse 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.PrintStream
zuerst 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 PrintStream
Daten 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 Charset
Klasse verwendet, um die Zeichenkodierung anzugeben. Weitere Informationen finden Sie unter Java Charset (offizielle Java-Dokumentation).
Methoden von PrintStream
Die PrintStream
Klasse bietet verschiedene Methoden, mit denen wir Daten in die Ausgabe drucken können.
print () Methode
print()
- druckt die angegebenen Daten in den Ausgabestreamprintln()
- 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 PrintStream
Klasse 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 istout
ist eine Klassenvariable vomPrintStream
Typ, die in derSystem
Klasse deklariert ist
Da out
es sich nun um einen PrintStream
Typ handelt, können wir damit alle PrintStream
Klassenmethoden 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).