In questo tutorial, impareremo a conoscere la classe Java PrintStream e i suoi metodi print () e printf () con l'aiuto di esempi.
La PrintStream
classe del java.io
pacchetto 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, PrintStream
converte i dati primitivi (numero intero, carattere) nel formato di testo anziché in byte. Quindi scrive i dati formattati nel flusso di output.
Inoltre, la PrintStream
classe non genera alcuna eccezione di input / output. Invece, dobbiamo utilizzare il checkError()
metodo per trovare eventuali errori in esso.
Nota : la PrintStream
classe 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.PrintStream
prima 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 PrintStream
dati 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 Charset
classe per specificare la codifica dei caratteri. Per saperne di più, visita Java Charset (documentazione Java ufficiale).
Metodi di PrintStream
La PrintStream
classe fornisce vari metodi che ci consentono di stampare i dati sull'output.
Metodo print ()
print()
- stampa i dati specificati nel flusso di outputprintln()
- 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 PrintStream
classe.
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 standardout
è una variabile di classe diPrintStream
tipo dichiarato inSystem
class
Ora poiché out
è di PrintStream
tipo, possiamo usarlo per chiamare tutti i metodi di PrintStream
classe.
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).