„Java PrintStream“ (su pavyzdžiais)

Šioje pamokoje pavyzdžių pagalba sužinosime apie „Java PrintStream“ klasę ir jos print () bei printf () metodus.

PrintStreamKlasės java.iopakuotė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ų, PrintStreamprimityvius duomenis (sveiką skaičių, simbolį) paverčia teksto formatu, o ne baitais. Tada jie suformatuotus duomenis įrašo į išvesties srautą.

Be to, PrintStreamklasė nemeta jokių įvesties / išvesties išimčių. Vietoj to, checkError()norėdami rasti bet kokią klaidą , turime naudoti metodą.

Pastaba : PrintStreamklasė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.PrintStreampaketą. 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 Charsetklasę, norėdami nurodyti simbolių kodavimą. Norėdami sužinoti daugiau, apsilankykite „Java Charset“ (oficiali „Java“ dokumentacija).

„PrintStream“ metodai

PrintStreamKlasė 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ą
  • outyra klasės kintamasis PrintStreamtipo paskelbta Systemklasės

Kadangi jis outyra PrintStreamtipo, mes galime jį naudoti norėdami iškviesti visus PrintStreamklasė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).

Įdomios straipsniai...