Java PrintStream (con esempi)

In questo tutorial, impareremo a conoscere la classe Java PrintStream e i suoi metodi print () e printf () con l'aiuto di esempi.

La PrintStreamclasse del java.iopacchetto può essere utilizzata per scrivere dati di output in una forma comunemente leggibile (testo) invece che in byte.

Estende la classe astratta OutputStream.

Funzionamento di PrintStream

A differenza di altri flussi di output, PrintStreamconverte i dati primitivi (numero intero, carattere) nel formato di testo anziché in byte. Quindi scrive i dati formattati nel flusso di output.

Inoltre, la PrintStreamclasse non genera alcuna eccezione di input / output. Invece, dobbiamo utilizzare il checkError()metodo per trovare eventuali errori in esso.

Nota : la PrintStreamclasse ha anche una funzione di lavaggio automatico. Ciò significa che forza il flusso di output a scrivere tutti i dati nella destinazione in una delle seguenti condizioni:

  • se il carattere di nuova riga è scritto nel flusso di stampa
  • se il println()metodo viene invocato
  • se un array di byte viene scritto nel flusso di stampa

Crea un PrintStream

Per creare un PrintStream, dobbiamo java.io.PrintStreamprima importare il pacchetto. Una volta importato il pacchetto, ecco come possiamo creare il flusso di stampa.

1. Utilizzo di altri flussi di output

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

Qui,

  • abbiamo creato un flusso di stampa che scriverà i dati formattati nel file rappresentato da FileOutputStream
  • autoFlush è un parametro booleano opzionale che specifica se eseguire o meno lo scaricamento automatico

2. Utilizzo del nome del file

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

Qui,

  • abbiamo creato un flusso di stampa che scriverà i dati formattati nel file specificato
  • autoFlush è un parametro booleano opzionale che specifica se eseguire o meno lo sfiato automatico

Nota : in entrambi i casi, i PrintStreamdati vengono scritti nel file utilizzando una codifica dei caratteri predefinita. Tuttavia, possiamo specificare anche la codifica dei caratteri ( UTF8 o UTF16 ).

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

Qui abbiamo usato la Charsetclasse per specificare la codifica dei caratteri. Per saperne di più, visita Java Charset (documentazione Java ufficiale).

Metodi di PrintStream

La PrintStreamclasse fornisce vari metodi che ci consentono di stampare i dati sull'output.

Metodo print ()

  • print() - stampa i dati specificati nel flusso di output
  • println() - stampa i dati nel flusso di output insieme a un nuovo carattere di riga alla fine

Esempio: metodo print () con la classe System

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

Produzione

 Ciao mondo. 

Nell'esempio precedente, non abbiamo creato un flusso di stampa. Tuttavia, possiamo usare il print()metodo della PrintStreamclasse.

Ti starai chiedendo come sia possibile. Bene, lascia che ti spieghi cosa sta succedendo qui.

Notare la linea,

 System.out.print(data); 

Qui,

  • System è una classe finale responsabile di eseguire operazioni di input / output standard
  • outè una variabile di classe di PrintStreamtipo dichiarato in Systemclass

Ora poiché outè di PrintStreamtipo, possiamo usarlo per chiamare tutti i metodi di PrintStreamclasse.

Esempio: metodo print () con classe 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(); ) ) ) 

Nell'esempio precedente, abbiamo creato un flusso di stampa denominato output. Il flusso di stampa è collegato al file output.txt .

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

Per stampare i dati sul file, abbiamo utilizzato il print()metodo.

Qui, quando eseguiamo il programma, il file output.txt viene riempito con il seguente contenuto.

 This is a text inside the file. 

Metodo printf ()

Il printf()metodo può essere utilizzato per stampare la stringa formattata. Include 2 parametri: stringa formattata e argomenti. Per esempio,

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

Qui,

  • Ho% d anni è una stringa formattata
  • % d è un numero intero nella stringa formattata
  • 25 è un argomento

La stringa formattata include testo e dati. E gli argomenti sostituiscono i dati all'interno della stringa formattata.

Quindi % d viene sostituito da 25 .

Esempio: metodo printf () che utilizza 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(); ) ) ) 

Nell'esempio precedente, abbiamo creato un flusso di stampa denominato output. Il flusso di stampa è collegato al file output.txt .

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

Per stampare il testo formattato nel file, abbiamo utilizzato il printf()metodo.

Qui, quando eseguiamo il programma, il file output.txt viene riempito con il seguente contenuto.

 I am 25 years old. 

Altri metodi di PrintStream

Metodi Descrizioni
close() chiude il flusso di stampa
checkError() controlla se c'è un errore nel flusso e restituisce un risultato booleano
append() aggiunge i dati specificati al flusso

Per saperne di più, visita Java PrintStream (documentazione Java ufficiale).

Articoli interessanti...