Dans ce didacticiel, nous allons découvrir la classe Java InputStream et ses méthodes à l'aide d'un exemple.
La InputStream
classe du java.io
package est une superclasse abstraite qui représente un flux d'entrée d'octets.
Puisqu'il InputStream
s'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.InputStream
package. 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 InputStream
c'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 InputStream
classe 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éeread(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éemark()
- marque la position dans le flux d'entrée jusqu'à laquelle les données ont été luesreset()
- renvoie le contrôle au point du flux où la marque a été placéemarkSupported()
- vérifie si la méthodemark()
andreset()
est prise en charge dans le fluxskips()
- saute et supprime le nombre spécifié d'octets du flux d'entréeclose()
- ferme le flux d'entrée
Exemple: InputStream à l'aide de FileInputStream
Voici comment nous pouvons implémenter en InputStream
utilisant la FileInputStream
classe.
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 FileInputStream
classe. 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).