English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Tutoriel de base Java

contrôle de flux Java

Java Tableau

Java Orienté objet (I)

Java Orienté objet (II)

Java Orienté objet (III)

Gestion des exceptions Java

Java Liste (List)

Java Queue (file d'attente)

Java Map collectif

Java Set collectif

Java Entrée/Sortie (I/O)

Java Reader/Writer

Autres sujets Java

Classe Java FileInputStream

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 ).

Créer un FileInputStream

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.

Méthodes de FileInputStream

La classe FileInputStream fournit des implémentations pour différentes méthodes présentes dans la classe InputStream.

Méthode read()

  • 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.

méthode available()

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,

  1. 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.

  2. puis, nous avons utilisé la méthode read()3lire3octets.

  3. 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.

méthode skip()

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.

close() method

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.

Other methods of FileInputStream

MethodContent 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