In deze tutorial leren we met behulp van voorbeelden over de Java PrintStream-klasse en de print () en printf () -methoden.
De PrintStream
klasse van het java.io
pakket kan worden gebruikt om uitvoergegevens in een algemeen leesbare vorm (tekst) te schrijven in plaats van in bytes.
Het breidt de abstracte klasse uit OutputStream
.
Werking van PrintStream
In tegenstelling tot andere uitvoerstromen, PrintStream
converteert het de primitieve gegevens (geheel getal, teken) naar het tekstformaat in plaats van bytes. Het schrijft vervolgens die geformatteerde gegevens naar de uitvoerstroom.
En ook PrintStream
gooit de klasse geen enkele invoer / uitvoer-uitzondering. In plaats daarvan moeten we de checkError()
methode gebruiken om eventuele fouten erin te vinden.
Opmerking : de PrintStream
klas heeft ook een functie voor automatisch doorspoelen. Dit betekent dat het de uitvoerstroom dwingt om alle gegevens naar de bestemming te schrijven onder een van de volgende voorwaarden:
- als het newline-teken
in de printstroom wordt geschreven
- als de
println()
methode wordt aangeroepen - als een array van bytes in de printstroom wordt geschreven
Maak een PrintStream
Om een te maken PrintStream
, moeten we eerst het java.io.PrintStream
pakket importeren . Zodra we het pakket hebben geïmporteerd, is hier hoe we de afdrukstroom kunnen maken.
1. Andere outputstromen gebruiken
// Creates a FileOutputStream FileOutputStream file = new FileOutputStream(String file); // Creates a PrintStream PrintStream output = new PrintStream(file, autoFlush);
Hier,
- we hebben een afdrukstroom gemaakt die opgemaakte gegevens naar het bestand zal schrijven dat wordt vertegenwoordigd door
FileOutputStream
- de autoFlush is een optionele booleaanse parameter die specificeert of automatisch doorspoelen moet worden uitgevoerd of niet
2. Met behulp van bestandsnaam
// Creates a PrintStream PrintStream output = new PrintStream(String file, boolean autoFlush);
Hier,
- we hebben een afdrukstroom gemaakt die opgemaakte 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 PrintStream
schrijven de gegevens naar het bestand met behulp van een standaard tekencodering. We kunnen echter ook de tekencodering ( UTF8 of UTF16 ) specificeren .
// Creates a PrintStream using some character encoding PrintStream output = new PrintStream(String file, boolean autoFlush, Charset cs);
Hier hebben we de Charset
klasse gebruikt om de tekencodering op te geven. Voor meer informatie, bezoek Java Charset (officiële Java-documentatie).
Methoden van PrintStream
De PrintStream
klasse 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 lijnteken aan het einde
Voorbeeld: methode print () met klasse System
class Main ( public static void main(String() args) ( String data = "Hello World."; System.out.print(data); ) )
Uitvoer
Hallo Wereld.
In het bovenstaande voorbeeld hebben we geen printstream gemaakt. We kunnen echter de print()
methode van de PrintStream
class gebruiken.
U vraagt zich 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 van hetPrintStream
type dat inSystem
klasse is gedeclareerd
Omdat het out
van het PrintStream
type is, kunnen we het gebruiken om alle methoden van PrintStream
class aan te roepen .
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 printstroom is gekoppeld aan het output.txt- bestand.
PrintStream output = new PrintStream("output.txt");
Om gegevens naar het bestand af te drukken, hebben we de print()
methode gebruikt.
Hier, wanneer we het programma uitvoeren, wordt het output.txt- bestand gevuld met de volgende inhoud.
This is a text inside the file.
printf () methode
De printf()
methode kan worden gebruikt om de opgemaakte string 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 tekenreeks
- % 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 tekenreeks.
Daarom wordt de % d vervangen door 25 .
Voorbeeld: methode printf () 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 printstroom 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()
methode gebruikt.
Hier, wanneer we het programma uitvoeren, wordt het output.txt- bestand gevuld met de volgende inhoud.
I am 25 years old.
Andere methoden van PrintStream
Methoden | Beschrijvingen |
---|---|
close() | sluit de printstroom |
checkError() | controleert of er een fout in de stream zit en retourneert een booleaans resultaat |
append() | voegt de opgegeven gegevens toe aan de stream |
Bezoek voor meer informatie Java PrintStream (officiële Java-documentatie).