Java InputStream-klasse
Java InputStream-klasse
In deze zelfstudie leren we over de Java InputStream-klasse en zijn methoden aan de hand van een voorbeeld.
De InputStream
klasse van de java.io
package is een abstracte superklasse die een invoerstroom van bytes vertegenwoordigt.
Sinds InputStream
een abstracte klasse is, is het op zichzelf niet nuttig. De subklassen ervan kunnen echter worden gebruikt om gegevens te lezen.
Subklassen van InputStream
Om de functionaliteit van InputStream
. te gebruiken , kunnen we zijn subklassen gebruiken. Sommigen van hen 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 de java.io.InputStream
. importeren pakket eerst. 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 behulp van FileInputStream
. Het is omdat InputStream
is een abstracte klasse. Daarom kunnen we geen object van InputStream
. maken .
Opmerking :We kunnen ook een invoerstroom maken van andere subklassen van InputStream
.
Methoden van InputStream
De InputStream
class biedt verschillende methoden die worden geïmplementeerd door zijn subklassen. Hier zijn enkele veelgebruikte 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 gegevens zijn gelezenreset()
- brengt de besturing terug naar het punt in de stream waar de markering was ingesteldmarkSupported()
- 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 InputStream
kunnen implementeren 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;
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: 39
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
klas. De invoerstroom is gekoppeld aan het bestand input.txt .
InputStream input = new FileInputStream("input.txt");
Gegevens lezen van de input.txt bestand, hebben we deze twee methoden geïmplementeerd.
input.read(array); // to read data from the input stream
input.close(); // to close the input stream
Ga voor meer informatie naar Java InputStream (officiële Java-documentatie).
Java