Jak funguje Java InputStream

Jak Funguje Java Inputstream



Java umožňuje vývojářům pracovat se soubory. V takovém případě „ InputStream ” vstoupí v platnost, která pomáhá při čtení obsahu specifikovaného souboru spolu s analýzou obsažených bajtů. To má za následek vypořádání se s problémy s pamětí a také efektivní návrat obsahu selektivního souboru podle požadavku.

Tento zápis bude podrobně popisovat fungování „InputStream“ v Javě.







Jak funguje Java InputStream?

Třída „InputStream“ třídy „ java.io ” balíček odpovídá abstraktní nadtřídě, která vrací vstupní proud obsahující bajty proti zadanému souboru.



Podtřídy InputStream

Aby bylo možné aplikovat funkce „InputStream“, lze použít její následující podtřídy:



    • FileInputStream
    • ObjectInputStream
    • ByteArrayInputStream

Je to takové, že tyto podtřídy rozšiřují třídu „InputStream“.





Metody InputStream

Třída „InputStream“ obsahuje různé metody, které používají její podtřídy. Níže jsou uvedeny některé z nejčastěji používaných metod:

Metody Funkčnost
číst() Čte bajt dat ze vstupního toku.



read(byte[] pole) Také čte bajty z proudu a ukládá je do cílového pole.

přeskočit() Tato metoda přeskočí/vynechá konkrétní počet bajtů ze vstupního proudu.

dostupný() Poskytuje obsažené bajty ve vstupním proudu.
reset() Umožňuje přístup k bodu toku, kde byla značka nastavena.

označit() Tato metoda označuje pozici v proudu, do které byla data načtena.

markSupported() Analyzuje, zda jsou ve streamu podporovány/kompatibilní metody „mark()“ a „reset()“.


Než přejdete k příkladu, importujte následující balíčky pro práci s „InputStream“ a její podtřídou:

import java.io.FileInputStream;
import java.io.InputStream;


Příklad: Práce s InputStream v Javě

Tento příklad ilustruje fungování „InputStream“ čtením obsahu souboru pomocí metod „InputStream“:

veřejná třída Inputstream {
public static void main ( String args [ ] ) {
byte [ ] dané pole = nový bajt [ padesáti ] ;
Snaž se {
InputStream readData = nový FileInputStream ( 'readfile.txt' ) ;
System.out.println ( 'Bajty v souboru ->' + readData.available ( ) ) ;
readData.read ( dané pole ) ;
System.out.println ( 'Přečíst data souboru:' ) ;
Řetězec obsahuje data = nový řetězec ( dané pole ) ;
System.out.println ( obsahovat data ) ;
readData.close ( ) ;
}
chytit ( Výjimka kromě ) {
kromě.getStackTrace ( ) ;
}
} }


Podle výše uvedených řádků kódu proveďte níže uvedené kroky:

    • Nejprve vytvořte pole „byte“, které může obsahovat maximálně „ padesáti ” bajtové hodnoty ve čteném souboru.
    • V dalším kroku vytvořte „ InputStream “ pomocí „FileInputStream“ a vraťte dostupné bajty v zadaném souboru prostřednictvím přidruženého „ dostupný() “ metoda.
    • Poté načtěte bajty ze vstupního toku pomocí „ číst() “ metoda.
    • Nyní převeďte bajtové pole na řetězec a zobrazte obsah souboru.
    • Nakonec zavřete přečtený soubor pomocí přidruženého „ zavřít() “ metoda.

Výstup


V tomto výsledku lze předpokládat, že počet bajtů v souboru, tj. akumulovaný prostor obsahem, je vrácen v souladu s maximálním rozsahem v poli bajtů, tj. „50“. Obsah souboru je také vrácen odpovídajícím způsobem.

Obsah souboru


Chcete-li získat přehled o „ přeskočit() ' a ' reset() “, zvažte následující ukázku:


Na tomto obrázku metoda „skip()“ přeskočí zadaný počet bajtů, tj. 5 -> Java ” z obsahu souboru od začátku. Metoda „reset()“ však resetuje proud.

Závěr

' InputStream 'třída' java.io ” package je abstraktní nadtřída, která odpovídá vstupnímu proudu bajtů používanému pro čtení dat souboru. Tato třída obsahuje různé metody, které pomáhají při čtení metodologie souboru efektivně podle požadavku. Tento blog demonstroval účel a fungování „InputStream“ v Javě.