Java InputStream (met voorbeeld)

In deze tutorial zullen we met behulp van een voorbeeld leren over de Java InputStream-klasse en de methoden ervan.

De InputStreamklasse van het java.iopakket is een abstracte superklasse die een invoerstroom van bytes vertegenwoordigt.

Omdat het InputStreameen 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.InputStreampakket 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 InputStreameen 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 InputStreamklasse 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 invoerstroom
  • read(byte() array) - leest bytes uit de stream en slaat op in de opgegeven array
  • available() - geeft het aantal bytes terug dat beschikbaar is in de invoerstroom
  • mark() - markeert de positie in de invoerstroom tot waar de gegevens zijn gelezen
  • reset() - geeft het besturingselement terug naar het punt in de stream waar de markering was geplaatst
  • markSupported()- controleert of de mark()en reset()methode wordt ondersteund in de stream
  • skips() - slaat het opgegeven aantal bytes over en verwijdert het uit de invoerstroom
  • close() - sluit de invoerstroom

Voorbeeld: InputStream met FileInputStream

Hier is hoe we kunnen implementeren InputStreammet behulp van de FileInputStreamklasse.

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 FileInputStreamklasse. 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).

Interessante artikelen...