Java PrintStream (met voorbeelden)

In deze tutorial leren we met behulp van voorbeelden over de Java PrintStream-klasse en de print () en printf () -methoden.

De PrintStreamklasse van het java.iopakket 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, PrintStreamconverteert 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 PrintStreamgooit de klasse geen enkele invoer / uitvoer-uitzondering. In plaats daarvan moeten we de checkError()methode gebruiken om eventuele fouten erin te vinden.

Opmerking : de PrintStreamklas 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.PrintStreampakket 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 PrintStreamschrijven 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 Charsetklasse gebruikt om de tekencodering op te geven. Voor meer informatie, bezoek Java Charset (officiële Java-documentatie).

Methoden van PrintStream

De PrintStreamklasse biedt verschillende methoden waarmee we gegevens naar de uitvoer kunnen afdrukken.

print () methode

  • print() - drukt de opgegeven gegevens af naar de uitvoerstroom
  • println() - 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 PrintStreamclass 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 / uitvoerbewerkingen
  • outis een klassevariabele van het PrintStreamtype dat in Systemklasse is gedeclareerd

Omdat het outvan het PrintStreamtype is, kunnen we het gebruiken om alle methoden van PrintStreamclass 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).

Interessante artikelen...