Java PrintStream (esimerkkien kanssa)

Tässä opetusohjelmassa opitaan Java PrintStream -luokasta ja sen print () - ja printf () -menetelmistä esimerkkien avulla.

PrintStreamLuokan java.iopaketti voidaan käyttää kirjoittamaan lähtödatan yhteisesti luettavassa muodossa (teksti) sijasta tavua.

Se laajentaa abstraktia luokkaa OutputStream.

PrintStreamin työskentely

Toisin kuin muut lähtövirrat, PrintStreamprimitiiviset tiedot (kokonaisluku, merkki) muunnetaan tekstimuodoksi tavujen sijaan. Sitten se kirjoittaa alustetut tiedot lähtövirtaan.

Ja PrintStreamluokka ei myöskään heitä mitään tulo- / lähtöpoikkeuksia. Sen sijaan meidän on käytettävä checkError()menetelmää virheiden löytämiseen.

Huomaa : PrintStreamLuokalla on myös automaattisen huuhtelun ominaisuus. Tämä tarkoittaa, että se pakottaa lähtevirran kirjoittamaan kaikki tiedot kohteeseen yhdessä seuraavista ehdoista:

  • jos uuden rivin merkki on kirjoitettu tulostusvirtaan
  • jos println()menetelmää käytetään
  • jos tavujoukko on kirjoitettu tulostusvirtaan

Luo PrintStream

Paketin luomiseksi PrintStreammeidän on java.io.PrintStreamensin tuotava paketti. Kun tuot paketin täältä, voimme luoda tulostusvirran.

1. Muiden lähtövirtojen käyttö

 // Creates a FileOutputStream FileOutputStream file = new FileOutputStream(String file); // Creates a PrintStream PrintStream output = new PrintStream(file, autoFlush); 

Tässä,

  • Olemme luoneet tulostusvirran, joka kirjoittaa alustetut tiedot tiedostoon, jota edustaa FileOutputStream
  • autoFlush on valinnainen looginen parametri, joka määrittää, suoritetaanko automaattinen huuhtelu vai ei

2. Käyttämällä tiedostonimeä

  // Creates a PrintStream PrintStream output = new PrintStream(String file, boolean autoFlush); 

Tässä,

  • Olemme luoneet tulostusvirran, joka kirjoittaa alustetut tiedot määritettyyn tiedostoon
  • autoFlush on valinnainen looginen parametri, joka määrittää, suoritetaanko automaattinen huuhtelu vai ei

Huomaa : Molemmissa tapauksissa PrintStreamkirjoitusdata tiedostoon käyttäen oletusmerkkikoodausta. Voimme kuitenkin määrittää myös merkkikoodauksen ( UTF8 tai UTF16 ).

 // Creates a PrintStream using some character encoding PrintStream output = new PrintStream(String file, boolean autoFlush, Charset cs); 

Tässä olemme käyttäneet Charsetluokkaa merkkien koodauksen määrittämiseen. Lisätietoja on Java Charset -sivustossa (virallinen Java-dokumentaatio).

Menetelmät PrintStream

PrintStreamLuokka tarjoaa erilaisia menetelmiä, joiden avulla voimme tulostaa tietoja lähtöön.

tulosta () Menetelmä

  • print() - tulostaa määritetyt tiedot lähtövirtaan
  • println() - tulostaa tiedot ulostulovirtaan ja uuden rivimerkin loppuun

Esimerkki: print () -menetelmä järjestelmäluokalla

 class Main ( public static void main(String() args) ( String data = "Hello World."; System.out.print(data); ) ) 

Tuotos

 Hei maailma. 

Yllä olevassa esimerkissä emme ole luoneet tulostusvirtaa. Voimme kuitenkin käyttää luokan print()menetelmää PrintStream.

Saatat miettiä, miten tämä on mahdollista. No, anna minun selittää, mitä täällä tapahtuu.

Huomaa rivi,

 System.out.print(data); 

Tässä,

  • System on viimeinen luokka, joka on vastuussa normaalin tulo- / lähtötoiminnon suorittamisesta
  • outon luokan muuttuja PrintStreamtyyppiä ilmoitettu Systemluokassa

Koska outse on PrintStreamtyyppiä, voimme käyttää sitä kutsumaan kaikki PrintStreamluokan menetelmät .

Esimerkki: print () -menetelmä PrintStream-luokassa

 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(); ) ) ) 

Yllä olevassa esimerkissä olemme luoneet tulostusvirran nimeltään output. Tulostusvirta on linkitetty output.txt- tiedostoon.

 PrintStream output = new PrintStream("output.txt"); 

Olemme tulostaneet tietoja tiedostoon käyttämällä print()menetelmää.

Tässä, kun suoritamme ohjelmaa, output.txt- tiedosto täytetään seuraavalla sisällöllä.

 This is a text inside the file. 

printf () -menetelmä

printf()Menetelmää voidaan käyttää tulostamaan muotoillun merkkijonon. Se sisältää 2 parametria: muotoiltu merkkijono ja argumentit. Esimerkiksi,

 printf("I am %d years old", 25); 

Tässä,

  • Olen% d vuotta vanha on alustettu merkkijono
  • % d on kokonaislukutieto alustetussa merkkijonossa
  • 25 on argumentti

Alustettu merkkijono sisältää sekä tekstiä että tietoja. Ja argumentit korvaavat alustetun merkkijonon tiedot.

Siksi % d korvataan 25: llä .

Esimerkki: printf () -menetelmä käyttämällä PrintStreamia

 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(); ) ) ) 

Yllä olevassa esimerkissä olemme luoneet tulostusvirran nimeltään output. Tulostusvirta on linkitetty tiedostoon output.txt .

 PrintStream output = new PrintStream("output.txt"); 

Alustetun tekstin tulostamiseen tiedostoon olemme käyttäneet printf()menetelmää.

Tässä, kun suoritamme ohjelmaa, output.txt- tiedosto täytetään seuraavalla sisällöllä.

 I am 25 years old. 

Muut PrintStreamin menetelmät

Menetelmät Kuvaukset
close() sulkee tulostusvirran
checkError() tarkistaa, onko virrassa virhe ja palauttaa boolen tuloksen
append() liittää määritetyt tiedot streamiin

Lisätietoja on Java PrintStreamissa (virallinen Java-dokumentaatio).

Mielenkiintoisia artikkeleita...