I denne vejledning lærer vi om Java PrintStream-klassen og dens print () og printf () metoder ved hjælp af eksempler.
Den PrintStream
klasse af java.io
emballagen kan bruges til at skrive output data i almindeligt læsbar form (tekst) i stedet for byte.
Det udvider den abstrakte klasse OutputStream
.
Arbejde med PrintStream
I modsætning til andre outputstrømme PrintStream
konverterer de primitive data (heltal, tegn) til tekstformatet i stedet for byte. Derefter skriver de formaterede data til outputstrømmen.
Og PrintStream
klassen kaster heller ikke nogen input / output-undtagelse. I stedet skal vi bruge checkError()
metoden til at finde en fejl i den.
Bemærk : PrintStream
Klassen har også en funktion af automatisk skylning. Dette betyder, at det tvinger outputstrømmen til at skrive alle data til destinationen under en af følgende betingelser:
- hvis newline-tegn
er skrevet i udskrivningsstrømmen
- hvis
println()
metoden påberåbes - hvis en række bytes er skrevet i udskrivningsstrømmen
Opret en PrintStream
For at oprette en PrintStream
skal vi først importere java.io.PrintStream
pakken. Når vi først har importeret pakken, kan vi oprette udskrivningsstrømmen her.
1. Brug af andre outputstrømme
// Creates a FileOutputStream FileOutputStream file = new FileOutputStream(String file); // Creates a PrintStream PrintStream output = new PrintStream(file, autoFlush);
Her,
- Vi har oprettet en udskrivningsstrøm, der skriver formaterede data til filen repræsenteret af
FileOutputStream
- autoFlush er en valgfri boolesk parameter, der angiver, om der skal udføres automatisk skylning eller ej
2. Brug af filnavn
// Creates a PrintStream PrintStream output = new PrintStream(String file, boolean autoFlush);
Her,
- Vi har oprettet en udskrivningsstrøm, der skriver formaterede data til den angivne fil
- autoFlush er en valgfri boolesk parameter, der specificerer, om der skal udføres autoflush eller ej
Bemærk : I begge tilfælde PrintStream
skriver dataene til filen ved hjælp af en standardkarakterkodning. Vi kan dog også specificere tegnkodningen ( UTF8 eller UTF16 ).
// Creates a PrintStream using some character encoding PrintStream output = new PrintStream(String file, boolean autoFlush, Charset cs);
Her har vi brugt Charset
klassen til at specificere tegnkodningen. For at lære mere, besøg Java Charset (officiel Java-dokumentation).
Metoder til PrintStream
Den PrintStream
klasse giver forskellige metoder, der tillader os at udskrive data til output.
udskriv () Metode
print()
- udskriver de specificerede data til outputstrømmenprintln()
- udskriver dataene til outputstrømmen sammen med et nyt linjetegn i slutningen
Eksempel: udskrivningsmetode () med systemklasse
class Main ( public static void main(String() args) ( String data = "Hello World."; System.out.print(data); ) )
Produktion
Hej Verden.
I eksemplet ovenfor har vi ikke oprettet en udskrivningsstrøm. Vi kan dog bruge print()
metoden i PrintStream
klassen.
Du undrer dig måske over, hvordan det er muligt. Lad mig forklare, hvad der sker her.
Bemærk linjen,
System.out.print(data);
Her,
System
er en sidste klasse, der er ansvarlig for at udføre standard input / output-operationout
er en klassevariabel afPrintStream
typen, der er angivet iSystem
klassen
Nu da det out
er af PrintStream
type, kan vi bruge det til at kalde alle metoderne i PrintStream
klassen.
Eksempel: udskrivningsmetode () med PrintStream-klassen
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 the above example, we have created a print stream named output. The print stream is linked with the output.txt file.
PrintStream output = new PrintStream("output.txt");
To print data to the file, we have used the print()
method.
Here, when we run the program, the output.txt file is filled with the following content.
This is a text inside the file.
printf() Method
The printf()
method can be used to print the formatted string. It includes 2 parameters: formatted string and arguments. For example,
printf("I am %d years old", 25);
Here,
- I am %d years old is a formatted string
- %d is integer data in the formatted string
- 25 is an argument
The formatted string includes both text and data. And, the arguments replace the data inside the formatted string.
Hence the %d is replaced by 25.
Example: printf() method using 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(); ) ) )
I ovenstående eksempel har vi oprettet en udskrivningsstrøm med navnet output. Udskrivningsstrømmen er knyttet til filen output.txt .
PrintStream output = new PrintStream("output.txt");
For at udskrive den formaterede tekst til filen har vi brugt printf()
metoden.
Her, når vi kører programmet, udfyldes output.txt- filen med følgende indhold.
I am 25 years old.
Andre metoder til PrintStream
Metoder | Beskrivelser |
---|---|
close() | lukker udskrivningsstrømmen |
checkError() | kontrollerer, om der er en fejl i strømmen, og returnerer et boolesk resultat |
append() | tilføjer de angivne data til strømmen |
For at lære mere, besøg Java PrintStream (officiel Java-dokumentation).