Java FileInputStream (avec des exemples)

Dans ce didacticiel, nous allons découvrir Java FileInputStream et ses méthodes à l'aide d'exemples.

La FileInputStreamclasse du java.iopackage peut être utilisée pour lire des données (en octets) à partir de fichiers.

Il étend la InputStreamclasse abstraite.

Avant d'en savoir plus FileInputStream, assurez-vous de connaître les fichiers Java.

Créer un FileInputStream

Afin de créer un flux d'entrée de fichier, nous devons d'abord importer le java.io.FileInputStreampackage. Une fois le package importé, voici comment créer un flux d'entrée de fichier en Java.

1. Utilisation du chemin d'accès au fichier

 FileInputStream input = new FileInputStream(stringPath); 

Ici, nous avons créé un flux d'entrée qui sera lié au fichier spécifié par le chemin.

2. Utilisation d'un objet du fichier

 FileInputStream input = new FileInputStream(File fileObject); 

Ici, nous avons créé un flux d'entrée qui sera lié au fichier spécifié par fileObject.

Méthodes de FileInputStream

La FileInputStreamclasse fournit des implémentations pour différentes méthodes présentes dans la InputStreamclasse.

read (), méthode

  • read() - lit un seul octet du fichier
  • read(byte() array) - lit les octets du fichier et les stocke dans le tableau spécifié
  • read(byte() array, int start, int length) - lit le nombre d'octets égal à la longueur du fichier et stocke dans le tableau spécifié à partir du début de la position

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.

 import java.io.FileInputStream; public class Main ( public static void main(String args()) ( try ( FileInputStream input = new FileInputStream("input.txt"); System.out.println("Data in the file: "); // Reads the first byte int i = input.read(); while(i != -1) ( System.out.print((char)i); // Reads next byte from the file i = input.read(); ) input.close(); ) catch(Exception e) ( e.getStackTrace(); ) ) ) 

Production

 Données dans le fichier: il s'agit d'une ligne de texte à l'intérieur du fichier. 

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

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

Pour lire les données du fichier, nous avons utilisé la read()méthode à l'intérieur de la boucle while.

available () Méthode

Pour obtenir le nombre d'octets disponibles, nous pouvons utiliser la available()méthode. Par exemple,

 import java.io.FileInputStream; public class Main ( public static void main(String args()) ( try ( // Suppose, the input.txt file contains the following text // This is a line of text inside the file. FileInputStream input = new FileInputStream("input.txt"); // Returns the number of available bytes System.out.println("Available bytes at the beginning: " + input.available()); // Reads 3 bytes from the file input.read(); input.read(); input.read(); // Returns the number of available bytes System.out.println("Available bytes at the end: " + input.available()); input.close(); ) catch (Exception e) ( e.getStackTrace(); ) ) ) 

Production

 Octets disponibles au début: 39 Octets disponibles à la fin: 36 

Dans l'exemple ci-dessus,

  1. Nous utilisons d'abord la available()méthode pour vérifier le nombre d'octets disponibles dans le flux d'entrée du fichier.
  2. Nous avons ensuite utilisé la read()méthode 3 fois pour lire 3 octets dans le flux d'entrée du fichier.
  3. Maintenant, après avoir lu les octets, nous avons à nouveau vérifié les octets disponibles. Cette fois, les octets disponibles ont diminué de 3.

skip (), méthode

Pour supprimer et ignorer le nombre d'octets spécifié, nous pouvons utiliser la skip()méthode. Par exemple,

 import java.io.FileInputStream; public class Main ( public static void main(String args()) ( try ( // Suppose, the input.txt file contains the following text // This is a line of text inside the file. FileInputStream input = new FileInputStream("input.txt"); // Skips the 5 bytes input.skip(5); System.out.println("Input stream after skipping 5 bytes:"); // Reads the first byte int i = input.read(); while (i != -1) ( System.out.print((char) i); // Reads next byte from the file i = input.read(); ) // close() method input.close(); ) catch (Exception e) ( e.getStackTrace(); ) ) ) 

Production

 Flux d'entrée après avoir sauté 5 octets: est une ligne de texte à l'intérieur du fichier. 

Dans l'exemple ci-dessus, nous avons utilisé la skip()méthode pour ignorer 5 octets de données du flux d'entrée du fichier. Par conséquent, les octets représentant le texte "Ceci" ne sont pas lus à partir du flux d'entrée.

close (), méthode

Pour fermer le flux d'entrée du fichier, nous pouvons utiliser la close()méthode. Une fois la close()méthode appelée, nous ne pouvons pas utiliser le flux d'entrée pour lire les données.

Dans tous les exemples ci-dessus, nous avons utilisé la close()méthode pour fermer le flux d'entrée du fichier.

Autres méthodes de FileInputStream

Méthodes Descriptions
finalize() garantit que la close()méthode est appelée
getChannel() renvoie l'objet de FileChannelassocié au flux d'entrée
getFD() renvoie le descripteur de fichier associé au flux d'entrée
mark() marquer 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 d'entrée où la marque a été définie

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

Articles intéressants...