Java InputStream-klasse: Kernmethoden en praktisch voorbeeld
Java InputStream-klasse
Deze tutorial ontrafelt Java's InputStream-klasse, met details over de primaire methoden, belangrijke subklassen en een hands-on voorbeeld met FileInputStream.
Inleiding
In het java.io-pakket is InputStream een abstracte superklasse die een byte-georiënteerde input stream vertegenwoordigt. Je kunt het niet direct instantiëren, maar de concrete subklassen bieden krachtige mechanismen voor het lezen van gegevens uit bestanden, byte-arrays en andere bronnen.
Belangrijkste subklassen van InputStream
Praktisch gebruik van InputStream is afhankelijk van de subklassen. De meest voorkomende zijn:
FileInputStream– leest bytes van een bestand op schijfByteArrayInputStream– leest bytes uit een in-memory byte-arrayObjectInputStream– deserialiseert objecten uit een input stream
Een InputStream aanmaken
Om een InputStream aan te maken, importeer eerst de klasse:
import java.io.InputStream;
Omdat InputStream abstract is, instantieer je een van de subklassen, bijvoorbeeld:
InputStream stream = new FileInputStream("voorbeeld.txt");
Je kunt FileInputStream vervangen door elke andere concrete subklasse.
Kernmethoden van InputStream
De volgende methoden zijn gemeenschappelijk aan alle InputStream-implementaties:
int read()– leest een enkele byte, retourneert deze alsintof-1bij einde van streamint read(byte[] b)– vult de meegeleverde byte-array met data en retourneert het aantal gelezen bytesint available()– rapporteert het aantal bytes dat gelezen kan worden zonder te blokkerenvoid mark(int readlimit)– markeert de huidige positie in de stream voor later resettenvoid reset()– zet de stream terug naar de meest recente markeringboolean markSupported()– geeft aan ofmarkenresetondersteund wordenlong skip(long n)– slaatnbytes over en gooit ze wegvoid close()– sluit de stream en geeft systeembronnen vrij
Praktisch voorbeeld: Een bestand lezen met FileInputStream
Stel we hebben een tekstbestand input.txt met de inhoud:
Dit is een regel tekst in het bestand.
Hieronder een compleet Java-programma dat het bestand opent, het aantal beschikbare bytes rapporteert, de inhoud in een byte-array leest en het resultaat print.
import java.io.FileInputStream;
import java.io.InputStream;
public class Main {
public static void main(String[] args) {
byte[] buffer = new byte[100];
try (InputStream input = new FileInputStream("input.txt")) {
System.out.println("Beschikbare bytes: " + input.available());
int bytesGelezen = input.read(buffer);
System.out.println("Gelezen bytes: " + bytesGelezen);
String data = new String(buffer, 0, bytesGelezen);
System.out.println("Gelezen data uit het bestand:");
System.out.println(data);
} catch (Exception e) {
e.printStackTrace();
}
}
}
Output
Beschikbare bytes: 39
Gelezen bytes: 39
Gelezen data uit het bestand:
Dit is een regel tekst in het bestand.
Dit voorbeeld toont hoe je met FileInputStream werkt in een try-with-resources-blok, wat zorgt dat de stream automatisch gesloten wordt, zelfs als een exception optreedt.
Voor een diepere duik in de API, raadpleeg de officiële Java-documentatie: InputStream Javadoc.
Java
- Java's final-sleutelwoord begrijpen: variabelen, methoden en klassen
- Java instanceof operator: een uitgebreide gids
- Java-erfenis meesteren: concepten, typen en praktische voorbeelden
- Java geneste static classes begrijpen: gebruik, verschillen en voorbeelden
- Java anonieme inner classes meesteren: definitie, syntax en praktische voorbeelden
- Java Singleton patroon uitgelegd: hoe veilig te implementeren en gebruiken
- Java Reflectie meesteren: klassen, methoden en velden inspecteren tijdens runtime
- Java ObjectOutputStream: Serialisatie, methoden en praktische voorbeelden
- Java Scanner: Uitgebreide gids met praktische voorbeelden
- Java Generics: Herbruikbare, type-veilige code bouwen
- Java-bestandsbewerkingen onder de knie krijgen met java.io – Aanmaken, lezen, schrijven en verwijderen