Tässä opetusohjelmassa opitaan Java InputStream -luokasta ja sen menetelmistä esimerkin avulla.
InputStream
Luokka java.io
paketti on abstrakti superclass, joka edustaa tulovirran tavuja.
Koska InputStream
se on abstrakti luokka, se ei ole itsestään hyödyllinen. Sen alaluokkia voidaan kuitenkin käyttää tietojen lukemiseen.
InputStreamin alaluokat
Käyttääkseen InputStream
, voimme käyttää sen alaluokkia. Jotkut niistä ovat:
- FileInputStream
- TavuArrayInputStream
- ObjectInputStream
Opimme kaikista näistä alaluokista seuraavassa opetusohjelmassa.
Luo InputStream
InputStreamin luomiseksi meidän on java.io.InputStream
ensin tuotava paketti. Kun tuot paketin, voimme luoda tulovirran seuraavasti.
// Creates an InputStream InputStream object1 = new FileInputStream();
Tässä olemme luoneet tulovirran käyttämällä FileInputStream
. Se johtuu siitä, että InputStream
se on abstrakti luokka. Siksi emme voi luoda objektia InputStream
.
Huomaa : Voimme luoda tulovirran myös muista InputStream
.
InputStreamin menetelmät
InputStream
Luokka tarjoaa erilaisia menetelmiä, on toteutettu sen alaluokkien. Tässä on joitain yleisesti käytettyjä menetelmiä:
read()
- lukee yhden tavun tietoja tulovirrastaread(byte() array)
- lukee tavuja virrasta ja tallentaa määritettyyn ryhmäänavailable()
- palauttaa syötevirrassa käytettävissä olevan tavujen määränmark()
- merkitsee syötevirran sijainnin, johon tiedot on luettureset()
- palauttaa ohjauksen virran pisteeseen, johon merkki asetettiinmarkSupported()
- tarkistaa, tuetaankomark()
jareset()
-menetelmää streamissaskips()
- ohittaa ja hylkää määrätyn määrän tavuja syöttövirrastaclose()
- sulkee tulovirran
Esimerkki: InputStream FileInputStreamin avulla
Tässä on, miten voimme toteuttaa InputStream
käyttämällä FileInputStream
luokkaa.
Oletetaan, että meillä on tiedosto nimeltä input.txt, jolla on seuraava sisältö.
This is a line of text inside the file.
Yritetään lukea tämä tiedosto käyttämällä FileInputStream
(alaluokkaa InputStream
).
import java.io.FileInputStream; import java.io.InputStream; public class Main ( public static void main(String args()) ( byte() array = new byte(100); try ( InputStream input = new FileInputStream("input.txt"); System.out.println("Available bytes in the file: " + input.available()); // Read byte from the input stream input.read(array); System.out.println("Data read from the file: "); // Convert byte array into string String data = new String(array); System.out.println(data); // Close the input stream input.close(); ) catch (Exception e) ( e.getStackTrace(); ) ) )
Tuotos
Available bytes in the file: 35 Data read from the file: This is a line of text inside the file
Yllä olevassa esimerkissä olemme luoneet tulovirran FileInputStream
luokan avulla. Syöttövirta on linkitetty tiedostoon input.txt .
InputStream input = new FileInputStream("input.txt");
Olemme lukeneet nämä kaksi tapaa lukeaksesi tietoja input.txt- tiedostosta.
input.read(array); // to read data from the input stream input.close(); // to close the input stream
Lisätietoja on Java InputStream -sivustossa (virallinen Java-dokumentaatio).