Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Industrial programming >> Java

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 schijf
  • ByteArrayInputStream – leest bytes uit een in-memory byte-array
  • ObjectInputStream – 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 als int of -1 bij einde van stream
  • int read(byte[] b) – vult de meegeleverde byte-array met data en retourneert het aantal gelezen bytes
  • int available() – rapporteert het aantal bytes dat gelezen kan worden zonder te blokkeren
  • void mark(int readlimit) – markeert de huidige positie in de stream voor later resetten
  • void reset() – zet de stream terug naar de meest recente markering
  • boolean markSupported() – geeft aan of mark en reset ondersteund worden
  • long skip(long n) – slaat n bytes over en gooit ze weg
  • void 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

  1. Java's final-sleutelwoord begrijpen: variabelen, methoden en klassen
  2. Java instanceof operator: een uitgebreide gids
  3. Java-erfenis meesteren: concepten, typen en praktische voorbeelden
  4. Java geneste static classes begrijpen: gebruik, verschillen en voorbeelden
  5. Java anonieme inner classes meesteren: definitie, syntax en praktische voorbeelden
  6. Java Singleton patroon uitgelegd: hoe veilig te implementeren en gebruiken
  7. Java Reflectie meesteren: klassen, methoden en velden inspecteren tijdens runtime
  8. Java ObjectOutputStream: Serialisatie, methoden en praktische voorbeelden
  9. Java Scanner: Uitgebreide gids met praktische voorbeelden
  10. Java Generics: Herbruikbare, type-veilige code bouwen
  11. Java-bestandsbewerkingen onder de knie krijgen met java.io – Aanmaken, lezen, schrijven en verwijderen