Maîtriser Java FileInputStream : Guide pratique avec exemples de code
Maîtriser Java FileInputStream : Guide pratique avec exemples de code
La classe FileInputStream, dans le package java.io, permet de lire des données d'octets brutes depuis des fichiers. Elle étend la classe abstraite InputStream, fournissant une implémentation concrète pour les E/S de fichiers.
Création d'un FileInputStream
Importez la classe et instanciez-la soit avec un chemin de fichier, soit avec un objet File.
1. Avec un chemin de fichier
FileInputStream input = new FileInputStream("chemin/vers/fichier.txt");
Ouvre un flux lié au fichier au chemin spécifié.
2. Avec un objet File
File fichier = new File("fichier.txt");
FileInputStream input = new FileInputStream(fichier);
Méthodes principales de FileInputStream
read()
int read()– lit un octet unique, le renvoie commeint(ou-1à la fin)int read(byte[] b)– remplit le tableau fourni avec des octetsint read(byte[] b, int off, int len)– lit jusqu'àlenoctets dansbà partir de l'offsetoff
Exemple : lecture d'un fichier texte octet par octet.
import java.io.FileInputStream;
public class Main {
public static void main(String[] args) {
try (FileInputStream input = new FileInputStream("input.txt")) {
System.out.println("Données dans le fichier :");
int octetLu;
while ((octetLu = input.read()) != -1) {
System.out.print((char) octetLu);
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
Sortie
Données dans le fichier : Ceci est une ligne de texte dans le fichier.
available()
Renvoie le nombre d'octets lisibles sans blocage.
try (FileInputStream input = new FileInputStream("input.txt")) {
System.out.println("Disponible au début : " + input.available());
input.read(); input.read(); input.read();
System.out.println("Disponible après 3 lectures : " + input.available());
}
Sortie
Disponible au début : 39 Disponible après 3 lectures : 36
skip()
Avance le flux d'un nombre spécifié d'octets, les ignorant.
try (FileInputStream input = new FileInputStream("input.txt")) {
input.skip(5); // ignore "Ceci "
int octetLu;
while ((octetLu = input.read()) != -1) {
System.out.print((char) octetLu);
}
}
Sortie
est une ligne de texte dans le fichier.
close()
Ferme le flux et libère les ressources. Le bloc try-with-resources (montré ci-dessus) assure l'appel automatique de close().
Méthodes supplémentaires de FileInputStream
| Méthode | Description |
|---|---|
finalize() | Assure l'appel de close() avant la collecte des ordures |
getChannel() | Renvoie le FileChannel associé au flux |
getFD() | Fournit le descripteur de fichier sous-jacent |
mark(int readlimit) | Marque la position courante pour réinitialisation ultérieure |
reset() | Réinitialise le flux à la dernière position marquée |
Pour plus de détails, consultez la documentation officielle Java FileInputStream.
Java
- Comprendre le mot-clé final en Java : variables, méthodes et classes
- L'opérateur instanceof en Java : guide complet
- Comprendre les classes imbriquées statiques en Java : utilisation, différences et exemples
- Maîtriser les classes internes anonymes en Java : définition, syntaxe et exemples pratiques
- Le pattern Singleton en Java expliqué : implémentation et utilisation sûre
- Maîtriser la réflexion Java : inspection des classes, méthodes et champs à l'exécution
- Maîtriser Java ObjectOutputStream : Sérialisation, méthodes et exemples pratiques
- Maîtriser Java BufferedReader : Gestion efficace des flux de caractères
- Maîtriser Java Scanner : Guide complet avec exemples pratiques