Hoe werkt de Java InputStream

Hoe Werkt De Java Inputstream



Java stelt de ontwikkelaars in staat om met de bestanden te werken. In dat geval is de “ InputStream ” klasse wordt van kracht die helpt bij het lezen van de gespecificeerde bestandsinhoud samen met het analyseren van de ingesloten bytes. Dit resulteert in het omgaan met de geheugenproblemen en het efficiënt retourneren van de selectieve bestandsinhoud volgens de vereiste.

Dit artikel gaat dieper in op de werking van de 'InputStream' in Java.







Hoe werkt de Java InputStream?

De klasse 'InputStream' van de ' java.io ”-pakket komt overeen met een abstracte superklasse die een invoerstroom retourneert die bestaat uit bytes tegen het opgegeven bestand.



Subklassen van InputStream

Om de 'InputStream' -functionaliteiten toe te passen, kunnen de volgende subklassen worden gebruikt:



    • FileInputStream
    • ObjectInputStream
    • ByteArrayInputStream

Het is zo dat deze subklassen de klasse 'InputStream' uitbreiden.





Methoden van InputStream

De klasse 'InputStream' bevat verschillende methoden die door zijn subklassen worden toegepast. Hieronder volgen enkele van de meest gebruikte methoden:

methoden functionaliteit
lezen() Het leest een byte aan gegevens uit de invoerstroom.



lezen(byte[] array) Het leest ook bytes uit de stream en slaat ze op in de doelarray.

overslaan() Deze methode slaat het specifieke aantal bytes van de invoerstroom over of laat deze weg.

beschikbaar() Het geeft de ingesloten bytes in de invoerstroom.
opnieuw instellen() Het geeft toegang tot het stroompunt waar de markering is geplaatst.

markering() Deze methode markeert de positie in de stream tot waar data is gelezen.

markSupported() Het analyseert of de methoden 'mark()' en 'reset()' worden ondersteund/compatibel in de stream.


Voordat u naar het voorbeeld gaat, importeert u de volgende pakketten om te werken met de 'InputStream' en zijn subklasse:

importeer java.io.FileInputStream;
java.io.InputStream importeren;


Voorbeeld: werking van InputStream in Java

Dit voorbeeld illustreert de werking van de 'InputStream' door de bestandsinhoud te lezen via de 'InputStream'-methoden:

openbare klasse Inputstream {
openbare statische leegte main ( Tekenreeksargumenten [ ] ) {
byte [ ] gegevenarray = nieuwe byte [ vijftig ] ;
poging {
InputStream readData = nieuwe FileInputStream ( 'leesbestand.txt' ) ;
Systeem.out.println ( 'Bytes in het bestand -> ' + readData.beschikbaar ( ) ) ;
readData.lezen ( gegevenarray ) ;
Systeem.out.println ( 'Bestandsgegevens lezen: ' ) ;
Tekenreeks bevat gegevens = nieuwe tekenreeks ( gegevenarray ) ;
Systeem.out.println ( gegevens bevatten ) ;
readData.sluiten ( ) ;
}
vangst ( Uitzondering behalve ) {
behalve.getStackTrace ( ) ;
}
} }


Voer volgens de bovenstaande coderegels de onderstaande stappen uit:

    • Maak eerst een 'byte' -array die maximaal ' vijftig ” bytewaarden in het gelezen bestand.
    • Maak in de volgende stap een ' InputStream ' met behulp van 'FileInputStream' en retourneer de beschikbare bytes in het opgegeven bestand via de bijbehorende ' beschikbaar() ” methode.
    • Lees daarna de bytes van de invoerstroom met behulp van de ' lezen() ” methode.
    • Converteer nu de byte-array naar een string en geef de inhoud van het bestand weer.
    • Sluit ten slotte het gelezen bestand met behulp van de bijbehorende ' dichtbij() ” methode.

Uitgang


In deze uitkomst kan worden gesuggereerd dat het aantal bytes in het bestand, d.w.z. de geaccumuleerde ruimte door de inhoud, wordt geretourneerd in overeenstemming met het maximale bereik in de byte-array, d.w.z. '50'. Ook wordt de bestandsinhoud correct geretourneerd.

Bestandsinhoud


Om een ​​overzicht te krijgen van de “ overslaan() ' En ' opnieuw instellen() ” methoden, overweeg dan de volgende demonstratie:


In deze illustratie slaat de methode 'skip()' het opgegeven aantal bytes over, d.w.z. ' 5 -> Java ” vanaf de bestandsinhoud vanaf het begin. De 'reset()'-methode reset echter de stream.

Conclusie

De ' InputStream ” klasse van de “ java.io ” pakket is een abstracte superklasse die overeenkomt met een invoerstroom van bytes die wordt gebruikt voor het lezen van de bestandsgegevens. Deze klasse omvat verschillende methoden die helpen bij het effectief lezen van het bestand volgens de vereisten. Deze blog demonstreerde het doel en de werking van de 'InputStream' in Java.