Classe Java InputStream
Classe Java InputStream
Dans ce didacticiel, nous allons découvrir la classe Java InputStream et ses méthodes à l'aide d'un exemple.
Le InputStream
classe du java.io
package est une superclasse abstraite qui représente un flux d'entrée d'octets.
Depuis InputStream
est une classe abstraite, elle n'est pas utile en elle-même. Cependant, ses sous-classes peuvent être utilisées pour lire des données.
Sous-classes de InputStream
Pour utiliser la fonctionnalité de InputStream
, nous pouvons utiliser ses sous-classes. Certains d'entre eux sont :
- FileInputStream
- ByteArrayInputStream
- ObjectInputStream
Nous découvrirons toutes ces sous-classes dans le prochain tutoriel.
Créer un InputStream
Afin de créer un InputStream, nous devons importer le java.io.InputStream
paquet d'abord. Une fois le package importé, voici comment 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
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 d'InputStream
Le InputStream
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 à partir du 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é définiemarkSupported()
- vérifie si lemark()
etreset()
la méthode est prise en charge dans le fluxskips()
- ignore et supprime le nombre d'octets spécifié du flux d'entréeclose()
- ferme le flux d'entrée
Exemple :InputStream utilisant FileInputStream
Voici comment nous pouvons implémenter InputStream
en utilisant le 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;
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();
}
}
}
Sortie
Available bytes in the file: 39
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 le FileInputStream
classer. Le flux d'entrée est lié au fichier input.txt .
InputStream input = new FileInputStream("input.txt");
Pour lire les données de input.txt fichier, 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 officielle de Java).
Java