Java PrintStream-klasse
Java PrintStream-klasse
In deze zelfstudie leren we aan de hand van voorbeelden over de Java PrintStream-klasse en de methoden print() en printf() ervan.
De PrintStream
klasse van de java.io
pakket kan worden gebruikt om uitvoergegevens te schrijven in een algemeen leesbare vorm (tekst) in plaats van in bytes.
Het breidt de abstracte klasse OutputStream
uit .
Werking van PrintStream
In tegenstelling tot andere uitvoerstromen, is de PrintStream
converteert de primitieve gegevens (geheel getal, teken) naar het tekstformaat in plaats van bytes. Vervolgens schrijft het die geformatteerde gegevens naar de uitvoerstroom.
En ook de PrintStream
class genereert geen input/output-uitzondering. In plaats daarvan moeten we de checkError()
. gebruiken methode om een fout erin te vinden.
Opmerking :De PrintStream
klasse heeft ook een functie van automatisch spoelen. Dit betekent dat het de uitvoerstroom dwingt om alle gegevens naar de bestemming te schrijven onder een van de volgende voorwaarden:
- if newline-teken
\n
is geschreven in de printstream - als de
println()
methode wordt aangeroepen - als er een array van bytes in de printstream wordt geschreven
Maak een PrintStream
Om een PrintStream
. aan te maken , moeten we de java.io.PrintStream
. importeren pakket eerst. Zodra we het pakket hebben geïmporteerd, kunnen we hier de printstream maken.
// Creates a FileOutputStream
FileOutputStream file = new FileOutputStream(String file);
// Creates a PrintStream
PrintStream output = new PrintStream(file, autoFlush);
Hier,
- we hebben een printstream gemaakt die geformatteerde gegevens schrijft naar het bestand dat wordt vertegenwoordigd door
FileOutputStream
- de autoFlush is een optionele booleaanse parameter die aangeeft of automatisch spoelen moet worden uitgevoerd of niet
// Creates a PrintStream
PrintStream output = new PrintStream(String file, boolean autoFlush);
Hier,
- we hebben een printstream gemaakt die geformatteerde gegevens naar het opgegeven bestand zal schrijven
- autoFlush is een optionele booleaanse parameter die aangeeft of autoflush moet worden uitgevoerd of niet
Opmerking :In beide gevallen is de PrintStream
schrijf gegevens naar het bestand met behulp van een standaardtekencodering. We kunnen echter wel de tekencodering specificeren (UTF8 of UTF16 ) ook.
// Creates a PrintStream using some character encoding
PrintStream output = new PrintStream(String file, boolean autoFlush, Charset cs);
Hier hebben we de Charset
. gebruikt class om de tekencodering op te geven. Ga voor meer informatie naar Java Charset (officiële Java-documentatie).
Methoden van PrintStream
De PrintStream
class biedt verschillende methoden waarmee we gegevens naar de uitvoer kunnen afdrukken.
print()-methode
print()
- drukt de opgegeven gegevens af naar de uitvoerstroomprintln()
- drukt de gegevens af naar de uitvoerstroom samen met een nieuw regelteken aan het einde
Voorbeeld:methode print() met systeemklasse
class Main {
public static void main(String[] args) {
String data = "Hello World.";
System.out.print(data);
}
}
Uitvoer
Hello World.
In het bovenstaande voorbeeld hebben we geen printstream gemaakt. We kunnen echter de print()
. gebruiken methode van de PrintStream
klasse.
Je vraagt je misschien af hoe dit mogelijk is. Nou, laat me uitleggen wat hier gebeurt.
Let op de lijn,
System.out.print(data);
Hier,
System
is een laatste klasse die verantwoordelijk is voor het uitvoeren van standaard invoer/uitvoerbewerkingenout
is een klassevariabele vanPrintStream
type gedeclareerd inSystem
klas
Nu sinds out
is van PrintStream
type, kunnen we het gebruiken om alle methoden van PrintStream
. aan te roepen klasse.
Voorbeeld:methode print() met klasse 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();
}
}
}
In het bovenstaande voorbeeld hebben we een printstream gemaakt met de naam output . De printstream is gekoppeld aan de output.txt bestand.
PrintStream output = new PrintStream("output.txt");
Om gegevens naar het bestand af te drukken, hebben we de print()
. gebruikt methode.
Hier, wanneer we het programma uitvoeren, wordt de output.txt bestand is gevuld met de volgende inhoud.
This is a text inside the file.
printf()-methode
De printf()
methode kan worden gebruikt om de opgemaakte tekenreeks af te drukken. Het bevat 2 parameters:opgemaakte tekenreeks en argumenten. Bijvoorbeeld,
printf("I am %d years old", 25);
Hier,
- Ik ben %d jaar oud is een opgemaakte string
- %d is integer data in de opgemaakte string
- 25 is een argument
De opgemaakte tekenreeks bevat zowel tekst als gegevens. En de argumenten vervangen de gegevens in de opgemaakte string.
Vandaar de %d wordt vervangen door 25 .
Voorbeeld:printf() methode met 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();
}
}
}
In het bovenstaande voorbeeld hebben we een printstream gemaakt met de naam output . De printstream is gekoppeld aan het bestand output.txt .
PrintStream output = new PrintStream("output.txt");
Om de opgemaakte tekst naar het bestand af te drukken, hebben we de printf()
. gebruikt methode.
Hier, wanneer we het programma uitvoeren, wordt de output.txt bestand is gevuld met de volgende inhoud.
I am 25 years old.
Andere methoden van PrintStream
Methoden | Beschrijvingen |
---|---|
close() | sluit de printstream |
checkError() | controleert of er een fout in de stream zit en geeft een booleaans resultaat |
append() | voegt de gespecificeerde gegevens toe aan de stream |
Ga voor meer informatie naar Java PrintStream (officiële Java-documentatie).
Java