Java PrintStream (z primeri)

V tej vadnici bomo s pomočjo primerov spoznali razred Java PrintStream in njegovi metodi print () in printf ().

PrintStreamRazred java.iopaket 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 PrintStreampretvori primitivne podatke (celo število, znak) v besedilno obliko namesto v bajte. Nato zapisuje te formatirane podatke v izhodni tok.

Poleg tega PrintStreamrazred ne povzroča nobene izjeme vhod / izhod. Namesto tega moramo z checkError()metodo poiskati morebitno napako.

Opomba : PrintStreamRazred 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.PrintStreampaket. 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 PrintStreamzapiš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 Charsetrazred za določanje kodiranja znakov. Če želite izvedeti več, obiščite Java Charset (uradna dokumentacija Java).

Metode PrintStream

PrintStreamRazred določa različne metode, ki nam omogočajo tiskanje podatkov na izhod.

print () Metoda

  • print() - natisne določene podatke v izhodni tok
  • println() - 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 PrintStreampredavanja.

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 operacije
  • outje spremenljivka razreda, ki je PrintStreamdeklarirana v Systemrazredu

Zdaj, ker outje PrintStreamtipa, lahko z njim pokličemo vse metode PrintStreamrazreda.

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).

Zanimive Članki...