English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Dans ce tutoriel, nous allons apprendre Java FileInputStream et ses méthodes à l'aide d'exemples.
La classe FileInputStream du paquet java.io peut être utilisée pour lire des données à partir de fichiers (en octets).
Il hérite de la classe abstraite InputStream.
Avant d'étudier FileInputStream, assurez-vous que vous avez déjà comprisJava File( fichier ).
Pour créer un flux d'entrée de fichier, nous devons d'abord importer le paquet java.io.FileInputStream. Après avoir importé le paquet, nous pouvons utiliser Java pour créer un flux d'entrée de fichier.
1Utiliser le chemin d'accès au fichier
FileInputStream input = new FileInputStream(stringPath);
Ici, nous créons un flux d'entrée qui sera lié au chemin d'accès spécifié au fichier.
2Utiliser l'objet fichier
FileInputStream input = new FileInputStream(File fileObject);
Ici, nous créons un flux d'entrée qui sera lié au fichier spécifié par fileObject.
La classe FileInputStream fournit des implémentations pour différentes méthodes présentes dans la classe InputStream.
read() - Lit un octet à partir du fichier
read(byte[] array) - Lit des octets à partir du fichier et les stocke dans le tableau spécifié
read(byte[] array, int start, int length) - Lit un nombre d'octets égal à length à partir du fichier et stocke-les dans le tableau spécifié à partir de la position start
Supposons que nous ayons un fichier nomméinput.txtle fichier, qui contient le contenu suivant.
This is a line of text inside the file.
Essayons d'utiliser FileInputStream pour lire ce fichier.
import java.io.FileInputStream; public class Main { public static void main(String args[]) { try { FileInputStream input = new FileInputStream("input.txt"); System.out.println("Les données du fichier: "); //lire le premier octet int i = input.read(); while(i != -1) { System.out.print((char)i); //lire le prochain octet à partir du fichier i = input.read(); } input.close(); } catch(Exception e) { e.getStackTrace(); } } }
Output result
Données du fichier: This is a line of text inside the file.
Dans l'exemple précédent, nous avons créé un flux d'entrée de fichier nommé input. Le flux d'entrée est connecté àinput.txtlien de fichier.
FileInputStream input = new FileInputStream("input.txt");
Pour lire des données à partir du fichier, nous avons utilisé la méthode read() dans la boucle while.
Pour obtenir le nombre d'octets disponibles, nous pouvons utiliser la méthode available(). Par exemple,
import java.io.FileInputStream; public class Main { public static void main(String args[]) { try { //Supposons que le fichier input.txt contienne le texte suivant //C'est une ligne de texte dans le fichier. FileInputStream input = new FileInputStream("input.txt"); //retourner le nombre d'octets disponibles System.out.println("Nombre d'octets disponibles au début: "); + input.available()); //lire à partir du fichier3octets input.read(); input.read(); input.read(); //retourner le nombre d'octets disponibles System.out.println("Nombre d'octets disponibles à la fin: "); + input.available()); input.close(); } catch (Exception e) { e.getStackTrace(); } } }
Output result
Nombre d'octets disponibles au début: 39 Nombre d'octets disponibles à la fin: 36
Dans l'exemple suivant,
Nous avons d'abord utilisé la méthode available() pour vérifier le nombre d'octets disponibles dans le flux d'entrée de fichier.
puis, nous avons utilisé la méthode read()3lire3octets.
Maintenant, après avoir lu les octets, nous avons à nouveau vérifié le nombre d'octets disponibles. Cette fois, le nombre d'octets disponibles a diminué3.
Pour ignorer et sauter un certain nombre d'octets spécifiés, vous pouvez utiliser la méthode skip(). Par exemple
import java.io.FileInputStream; public class Main { public static void main(String args[]) { try { //Supposons que le fichier input.txt contienne le texte suivant //C'est une ligne de texte dans le fichier. FileInputStream input = new FileInputStream("input.txt"); //sauter5octets input.skip(5); System.out.println("Sauter le flux d'entrée5octets : "); //lire le premier octet int i = input.read(); while (i != -1) { System.out.print((char) i); //lire le prochain octet à partir du fichier i = input.read(); } // méthode close() input.close(); } catch (Exception e) { e.getStackTrace(); } } }
Output result
Input stream skip5bytes: is a line of text inside the file.
In the above example, we used the skip() method to skip5bytes of data. Therefore, no text representation“This”bytes.
To close the file input stream, you can use the close() method. Once the close() method is called, we cannot use the input stream to read data.
In all the above examples, we have used the close() method to close the file input stream.
Method | Content description |
---|---|
finalize() | Ensure that the close() method is called |
getChannel() | Return the object associated with FileChannel and input stream |
getFD() | Return the file descriptor associated with the input stream |
mark() | Mark the position of the data read in the input stream |
reset() | Return the control to the input stream to the point where the mark was set |