In deze tutorial zullen we met behulp van een voorbeeld leren over de Java InputStream-klasse en de methoden ervan.
De InputStream
klasse van het java.io
pakket is een abstracte superklasse die een invoerstroom van bytes vertegenwoordigt.
Omdat het InputStream
een abstracte klasse is, is deze op zichzelf niet bruikbaar. De subklassen kunnen echter worden gebruikt om gegevens te lezen.
Subklassen van InputStream
Om de functionaliteit van te gebruiken InputStream
, kunnen we de subklassen ervan gebruiken. Sommige ervan zijn:
- FileInputStream
- ByteArrayInputStream
- ObjectInputStream
We zullen over al deze subklassen leren in de volgende tutorial.
Maak een InputStream
Om een InputStream te maken, moeten we het java.io.InputStream
pakket eerst importeren . Zodra we het pakket hebben geïmporteerd, kunnen we als volgt de invoerstroom maken.
// Creates an InputStream InputStream object1 = new FileInputStream();
Hier hebben we een invoerstroom gemaakt met FileInputStream
. Het is omdat het InputStream
een abstracte klasse is. Daarom kunnen we er geen object van maken InputStream
.
Opmerking : we kunnen ook een invoerstroom maken vanuit andere subklassen van InputStream
.
Methoden van InputStream
De InputStream
klasse biedt verschillende methoden die worden geïmplementeerd door de subklassen. Hier zijn enkele van de meest gebruikte methoden:
read()
- leest één byte aan gegevens uit de invoerstroomread(byte() array)
- leest bytes uit de stream en slaat op in de opgegeven arrayavailable()
- geeft het aantal bytes terug dat beschikbaar is in de invoerstroommark()
- markeert de positie in de invoerstroom tot waar de gegevens zijn gelezenreset()
- geeft het besturingselement terug naar het punt in de stream waar de markering was geplaatstmarkSupported()
- controleert of demark()
enreset()
methode wordt ondersteund in de streamskips()
- slaat het opgegeven aantal bytes over en verwijdert het uit de invoerstroomclose()
- sluit de invoerstroom
Voorbeeld: InputStream met FileInputStream
Hier is hoe we kunnen implementeren InputStream
met behulp van de FileInputStream
klasse.
Stel dat we een bestand hebben met de naam input.txt met de volgende inhoud.
This is a line of text inside the file.
Laten we proberen dit bestand te lezen met FileInputStream
(een subklasse van 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(); ) ) )
Uitvoer
Available bytes in the file: 35 Data read from the file: This is a line of text inside the file
In het bovenstaande voorbeeld hebben we een invoerstroom gemaakt met behulp van de FileInputStream
klasse. De invoerstroom is gekoppeld aan het bestand input.txt .
InputStream input = new FileInputStream("input.txt");
Om gegevens uit het input.txt- bestand te lezen , hebben we deze twee methoden geïmplementeerd.
input.read(array); // to read data from the input stream input.close(); // to close the input stream
Bezoek voor meer informatie Java InputStream (officiële Java-documentatie).