Tässä opetusohjelmassa opitaan Java PrintStream -luokasta ja sen print () - ja printf () -menetelmistä esimerkkien avulla.
PrintStream
Luokan java.io
paketti 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, PrintStream
primitiiviset tiedot (kokonaisluku, merkki) muunnetaan tekstimuodoksi tavujen sijaan. Sitten se kirjoittaa alustetut tiedot lähtövirtaan.
Ja PrintStream
luokka 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 : PrintStream
Luokalla 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 PrintStream
meidän on java.io.PrintStream
ensin 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 PrintStream
kirjoitusdata 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 Charset
luokkaa merkkien koodauksen määrittämiseen. Lisätietoja on Java Charset -sivustossa (virallinen Java-dokumentaatio).
Menetelmät PrintStream
PrintStream
Luokka tarjoaa erilaisia menetelmiä, joiden avulla voimme tulostaa tietoja lähtöön.
tulosta () Menetelmä
print()
- tulostaa määritetyt tiedot lähtövirtaanprintln()
- 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 suorittamisestaout
on luokan muuttujaPrintStream
tyyppiä ilmoitettuSystem
luokassa
Koska out
se on PrintStream
tyyppiä, voimme käyttää sitä kutsumaan kaikki PrintStream
luokan 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).