Java InputStream (avec exemple)

Dans ce didacticiel, nous allons découvrir la classe Java InputStream et ses méthodes à l'aide d'un exemple.

La InputStreamclasse du java.iopackage est une superclasse abstraite qui représente un flux d'entrée d'octets.

Puisqu'il InputStreams'agit d'une classe abstraite, elle n'est pas utile en soi. Cependant, ses sous-classes peuvent être utilisées pour lire des données.

Sous-classes d'InputStream

Afin d'utiliser la fonctionnalité de InputStream, nous pouvons utiliser ses sous-classes. Certains d'entre eux sont:

  • FileInputStream
  • ByteArrayInputStream
  • ObjectInputStream

Nous en apprendrons davantage sur toutes ces sous-classes dans le prochain tutoriel.

Créer un InputStream

Afin de créer un InputStream, nous devons d'abord importer le java.io.InputStreampackage. Une fois que nous avons importé le package, voici comment nous pouvons créer le flux d'entrée.

 // Creates an InputStream InputStream object1 = new FileInputStream(); 

Ici, nous avons créé un flux d'entrée en utilisant FileInputStream. C'est parce que InputStreamc'est une classe abstraite. Par conséquent, nous ne pouvons pas créer un objet de InputStream.

Remarque : nous pouvons également créer un flux d'entrée à partir d'autres sous-classes de InputStream.

Méthodes de InputStream

La InputStreamclasse fournit différentes méthodes qui sont implémentées par ses sous-classes. Voici quelques-unes des méthodes couramment utilisées:

  • read() - lit un octet de données dans le flux d'entrée
  • read(byte() array) - lit les octets du flux et les stocke dans le tableau spécifié
  • available() - renvoie le nombre d'octets disponibles dans le flux d'entrée
  • mark() - marque la position dans le flux d'entrée jusqu'à laquelle les données ont été lues
  • reset() - renvoie le contrôle au point du flux où la marque a été placée
  • markSupported()- vérifie si la méthode mark()and reset()est prise en charge dans le flux
  • skips() - saute et supprime le nombre spécifié d'octets du flux d'entrée
  • close() - ferme le flux d'entrée

Exemple: InputStream à l'aide de FileInputStream

Voici comment nous pouvons implémenter en InputStreamutilisant la FileInputStreamclasse.

Supposons que nous ayons un fichier nommé input.txt avec le contenu suivant.

 This is a line of text inside the file. 

Essayons de lire ce fichier en utilisant FileInputStream(une sous-classe de 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(); ) ) ) 

Production

 Available bytes in the file: 35 Data read from the file: This is a line of text inside the file 

Dans l'exemple ci-dessus, nous avons créé un flux d'entrée en utilisant la FileInputStreamclasse. Le flux d'entrée est lié au fichier input.txt .

 InputStream input = new FileInputStream("input.txt"); 

Pour lire les données du fichier input.txt , nous avons implémenté ces deux méthodes.

 input.read(array); // to read data from the input stream input.close(); // to close the input stream 

Pour en savoir plus, visitez Java InputStream (documentation Java officielle).

Articles intéressants...