Šioje pamokoje pavyzdžių pagalba sužinosime apie „Java PrintStream“ klasę ir jos print () bei printf () metodus.
PrintStream
Klasės java.io
pakuotėje gali būti naudojamas rašyti išvesties duomenis dažniausiai nuskaitoma forma (tekstas), o ne baitais.
Tai pratęsia abstrakčią klasę OutputStream
.
„PrintStream“ darbas
Skirtingai nuo kitų išvesties srautų, PrintStream
primityvius duomenis (sveiką skaičių, simbolį) paverčia teksto formatu, o ne baitais. Tada jie suformatuotus duomenis įrašo į išvesties srautą.
Be to, PrintStream
klasė nemeta jokių įvesties / išvesties išimčių. Vietoj to, checkError()
norėdami rasti bet kokią klaidą , turime naudoti metodą.
Pastaba : PrintStream
klasėje taip pat yra automatinio plovimo funkcija. Tai reiškia, kad jis priverčia išvesties srautą rašyti visus duomenis į paskirties vietą esant vienai iš šių sąlygų:
- jei
spausdinimo sraute įrašytas naujos eilutės simbolis
- jei naudojamas
println()
metodas - jei spausdinimo sraute parašyta baitų masyvas
Sukurkite „PrintStream“
Norėdami sukurti „a“ PrintStream
, pirmiausia turime importuoti java.io.PrintStream
paketą. Kai importuosime paketą, galime sukurti spausdinimo srautą.
1. Naudojant kitus išvesties srautus
// Creates a FileOutputStream FileOutputStream file = new FileOutputStream(String file); // Creates a PrintStream PrintStream output = new PrintStream(file, autoFlush);
Čia
- mes sukūrėme spausdinimo srautą, kuris įrašys suformatuotus duomenis į failą, kurį vaizduoja
FileOutputStream
- „autoFlush“ yra pasirinktinis loginis parametras, nurodantis, ar atlikti automatinį plovimą, ar ne
2. Naudojant failo pavadinimą
// Creates a PrintStream PrintStream output = new PrintStream(String file, boolean autoFlush);
Čia
- mes sukūrėme spausdinimo srautą, kuris įrašys suformatuotus duomenis į nurodytą failą
- „autoFlush“ yra pasirinktinis loginis parametras, nurodantis, ar atlikti automatinį praplovimą, ar ne
Pastaba : abiem atvejais PrintStream
įrašykite duomenis į failą naudodami numatytąjį simbolių kodavimą. Tačiau galime nurodyti ir simbolių kodavimą ( UTF8 arba UTF16 ).
// Creates a PrintStream using some character encoding PrintStream output = new PrintStream(String file, boolean autoFlush, Charset cs);
Čia mes naudojome Charset
klasę, norėdami nurodyti simbolių kodavimą. Norėdami sužinoti daugiau, apsilankykite „Java Charset“ (oficiali „Java“ dokumentacija).
„PrintStream“ metodai
PrintStream
Klasė teikia įvairius metodus, kurie leidžia mums spausdinti duomenis prie išėjimo.
spausdinti () metodas
print()
- atspausdina nurodytus duomenis į išvesties srautąprintln()
- išspausdina duomenis išvesties sraute kartu su nauju eilutės simboliu pabaigoje
Pavyzdys: print () metodas su sistemos klase
class Main ( public static void main(String() args) ( String data = "Hello World."; System.out.print(data); ) )
Rezultatas
Labas pasauli.
Ankstesniame pavyzdyje mes nesukūrėme spausdinimo srauto. Tačiau mes galime naudoti klasės print()
metodą PrintStream
.
Jums gali būti įdomu, kaip tai įmanoma. Na, leiskite man paaiškinti, kas čia vyksta.
Atkreipkite dėmesį į eilutę,
System.out.print(data);
Čia
System
yra paskutinė klasė, atsakinga už standartinių įvesties / išvesties operacijų atlikimąout
yra klasės kintamasisPrintStream
tipo paskelbtaSystem
klasės
Kadangi jis out
yra PrintStream
tipo, mes galime jį naudoti norėdami iškviesti visus PrintStream
klasės metodus .
Pavyzdys: print () metodas su „PrintStream“ klase
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(); ) ) )
Ankstesniame pavyzdyje mes sukūrėme spausdinimo srautą, pavadintą išvestimi. Spausdinimo srautas yra susietas su output.txt failu.
PrintStream output = new PrintStream("output.txt");
Norėdami spausdinti duomenis į failą, mes naudojome print()
metodą.
Čia, kai vykdome programą, failas output.txt užpildomas tokiu turiniu.
This is a text inside the file.
printf () metodas
printf()
Metodas gali būti naudojamas spausdinti suformatuotą eilutę. Jame yra 2 parametrai: suformatuota eilutė ir argumentai. Pavyzdžiui,
printf("I am %d years old", 25);
Čia
- Aš esu% d metų - suformatuota eilutė
- % d yra sveiko skaičiaus duomenys suformatuotoje eilutėje
- 25 yra argumentas
Suformatuota eilutė apima ir tekstą, ir duomenis. Argumentai pakeičia suformatuotos eilutės duomenis.
Taigi % d pakeičiamas 25 .
Pavyzdys: metodas printf () naudojant 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(); ) ) )
Ankstesniame pavyzdyje mes sukūrėme spausdinimo srautą, pavadintą išvestimi. Spausdinimo srautas susietas su failu output.txt .
PrintStream output = new PrintStream("output.txt");
Norėdami išspausdinti suformatuotą tekstą į failą, naudojome printf()
metodą.
Čia, kai vykdome programą, failas output.txt užpildomas tokiu turiniu.
I am 25 years old.
Kiti „PrintStream“ metodai
Metodai | Aprašymai |
---|---|
close() | uždaro spausdinimo srautą |
checkError() | patikrina, ar sraute nėra klaidos, ir pateikia loginį rezultatą |
append() | prideda nurodytus duomenis prie srauto |
Norėdami sužinoti daugiau, apsilankykite „Java PrintStream“ (oficiali „Java“ dokumentacija).