V tej vadnici bomo s pomočjo primerov spoznali razred Java PrintStream in njegovi metodi print () in printf ().
PrintStream
Razred java.io
paket se lahko uporablja za pisanje izhodne podatke v skupno berljivi obliki (besedilo) namesto bajtov.
Razširja abstraktni razred OutputStream
.
Delovanje PrintStream
Za razliko od drugih izhodnih tokov PrintStream
pretvori primitivne podatke (celo število, znak) v besedilno obliko namesto v bajte. Nato zapisuje te formatirane podatke v izhodni tok.
Poleg tega PrintStream
razred ne povzroča nobene izjeme vhod / izhod. Namesto tega moramo z checkError()
metodo poiskati morebitno napako.
Opomba : PrintStream
Razred ima tudi funkcijo samodejnega splakovanja. To pomeni, da prisili izhodni tok zapisati vse podatke na cilj pod enim od naslednjih pogojev:
- če
je v toku tiskanja zapisan znak nove vrstice
- če se
println()
metoda prikliče - če je v toku tiskanja zapisana matrika bajtov
Ustvarite PrintStream
Če želite ustvariti a PrintStream
, moramo najprej uvoziti java.io.PrintStream
paket. Ko uvozimo paket, je tukaj opisano, kako lahko ustvarimo tok tiskanja.
1. Uporaba drugih izhodnih tokov
// Creates a FileOutputStream FileOutputStream file = new FileOutputStream(String file); // Creates a PrintStream PrintStream output = new PrintStream(file, autoFlush);
Tukaj,
- ustvarili smo tok tiskanja, ki bo zapisal formatirane podatke v datoteko, ki jo predstavlja
FileOutputStream
- autoFlush je neobvezen logični parameter, ki določa, ali naj se samodejno izpere ali ne
2. Uporaba imena datoteke
// Creates a PrintStream PrintStream output = new PrintStream(String file, boolean autoFlush);
Tukaj,
- ustvarili smo tok tiskanja, ki bo zapisal formatirane podatke v določeno datoteko
- autoFlush je neobvezen logični parameter, ki določa, ali naj izvede samodejno izpiranje ali ne
Opomba : V obeh primerih PrintStream
zapišite podatke v datoteko s privzetim kodiranjem znakov. Lahko pa določimo tudi kodiranje znakov ( UTF8 ali UTF16 ).
// Creates a PrintStream using some character encoding PrintStream output = new PrintStream(String file, boolean autoFlush, Charset cs);
Tu smo uporabili Charset
razred za določanje kodiranja znakov. Če želite izvedeti več, obiščite Java Charset (uradna dokumentacija Java).
Metode PrintStream
PrintStream
Razred določa različne metode, ki nam omogočajo tiskanje podatkov na izhod.
print () Metoda
print()
- natisne določene podatke v izhodni tokprintln()
- natisne podatke v izhodni tok skupaj z novim znakom na koncu
Primer: metoda print () s sistemskim razredom
class Main ( public static void main(String() args) ( String data = "Hello World."; System.out.print(data); ) )
Izhod
Pozdravljen, svet.
V zgornjem primeru nismo ustvarili toka tiskanja. Lahko pa uporabimo print()
metodo PrintStream
predavanja.
Morda se sprašujete, kako je to mogoče. No, naj razložim, kaj se tukaj dogaja.
Opazite vrstico,
System.out.print(data);
Tukaj,
System
je končni razred, ki je odgovoren za izvedbo standardne vhodno / izhodne operacijeout
je spremenljivka razreda, ki jePrintStream
deklarirana vSystem
razredu
Zdaj, ker out
je PrintStream
tipa, lahko z njim pokličemo vse metode PrintStream
razreda.
Primer: metoda print () z razredom 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(); ) ) )
V zgornjem primeru smo ustvarili tok tiskanja z imenom output. Tok tiskanja je povezan z datoteko output.txt .
PrintStream output = new PrintStream("output.txt");
Za tiskanje podatkov v datoteko smo uporabili print()
metodo.
Ko zaženemo program, je datoteka output.txt napolnjena z naslednjo vsebino.
This is a text inside the file.
metoda printf ()
printf()
Metoda se lahko uporabi za tiskanje formatiran niz. Vključuje 2 parametra: formatirani niz in argumente. Na primer
printf("I am %d years old", 25);
Tukaj,
- Star sem% d let, je formatiran niz
- % d je celoštevilčni podatek v formatiranem nizu
- 25 je argument
Formatirani niz vključuje besedilo in podatke. Argumenti nadomeščajo podatke znotraj formatiranega niza.
Zato se % d nadomesti s 25 .
Primer: metoda printf () z uporabo programa 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(); ) ) )
V zgornjem primeru smo ustvarili tok tiskanja z imenom output. Tok tiskanja je povezan z datoteko output.txt .
PrintStream output = new PrintStream("output.txt");
Za tiskanje formatiranega besedila v datoteko smo uporabili printf()
metodo.
Ko zaženemo program, je datoteka output.txt napolnjena z naslednjo vsebino.
I am 25 years old.
Druge metode PrintStreama
Metode | Opisi |
---|---|
close() | zapre tok tiskanja |
checkError() | preveri, ali je v toku napaka, in vrne logični rezultat |
append() | doda določene podatke toku |
Če želite izvedeti več, obiščite Java PrintStream (uradna dokumentacija Java).