Différentes façons de lire un fichier texte en Java

Différentes façons de lire un fichier texte en Java

En Java, il existe plusieurs façons de lire un fichier texte en fonction de la taille de vos données et de votre cas d'utilisation. Le java.io et paquets java.nio.file fournir plusieurs classes pour gérer efficacement la lecture des fichiers. Discutons des approches courantes une par une.

1. Utilisation de la classe BufferedReader

BufferedReader La classe lit le texte à partir d'un flux de caractères et met les caractères en mémoire tampon pour une lecture efficace. Il est souvent enroulé autour d'un Lecteur de fichiers ou Lecteur de flux d'entrée pour améliorer les performances.

Syntaxe

BufferedReader in = new BufferedReader (Lecteur en taille int);

Java
   import     java.io.*  ;   public     class   UsingBufferReader     {      public     static     void     main  (  String  []     args  )     throws     Exception  {          // Creating BufferedReader for Input      BufferedReader     bfri     =     new     BufferedReader  (      new     InputStreamReader  (  System  .  in  ));      System  .  out  .  print  (  'Enter the Path : '  );      // Reading File name      String     path     =     bfri  .  readLine  ();      BufferedReader     bfro      =     new     BufferedReader  (  new     FileReader  (  path  ));      String     st  ;      while     ((  st     =     bfro  .  readLine  ())     !=     null  )      System  .  out  .  println  (  st  );      }   }   


Sortir

Utilisation de BufferReaderSortir

2. Classe FileReader pour la lecture d'un fichier texte

Le Classe FileReader est utilisé pour lire des fichiers texte en Java. Il lit les caractères d'un fichier et convient à la lecture de texte brut. Les constructeurs de cette classe supposent que le codage des caractères par défaut et la taille du tampon d'octets par défaut sont appropriés. 

Les constructeurs définis dans cette classe sont les suivants :

  • FileReader (fichier fichier) : Crée un nouveau FileReader en fonction du fichier à lire
  • FileReader (FileDescriptor fd) : Crée un nouveau FileReader étant donné le FileDescriptor à partir duquel lire
  • FileReader (String fileName) : Crée un nouveau FileReader en fonction du nom du fichier à lire
Java
   import     java.io.*  ;   public     class   UsingFileReader     {      public     static     void     main  (  String  []     args  )     throws     Exception      {      BufferedReader     br     =     new     BufferedReader  (  new     InputStreamReader  (  System  .  in  ));      System  .  out  .  print  (  'Enter the Path : '  );          // Reading File name      String     path     =     br  .  readLine  ();      FileReader     fr     =     new     FileReader  (  path  );      int     i  ;          // Holds true till there is nothing to read      while     ((  i     =     fr  .  read  ())     !=     -  1  )      // Print all the content of a file      System  .  out  .  print  ((  char  )  i  );      }   }   


Sortir

Utilisation de FileReaderSortir

3. Classe de scanner pour lire un fichier texte

Classe de scanner fournit un moyen simple de lire des fichiers texte et d'analyser des types primitifs ou des chaînes à l'aide de expressions régulières . Il divise l'entrée en jetons à l'aide d'un délimiteur (par défaut des espaces).

Exemple 1 : Avec l'utilisation de boucles

Java
   import     java.io.*  ;   import     java.util.Scanner  ;   public     class   UsingScannerClass      {      public     static     void     main  (  String  []     args  )     throws     Exception      {      BufferedReader     br     =     new     BufferedReader  (  new     InputStreamReader  (  System  .  in  ));      System  .  out  .  print  (  'Enter the Path : '  );          // Reading File name      String     path     =     br  .  readLine  ();          // pass the path to the file as a parameter      File     file     =     new     File  (  path  );          Scanner     sc     =     new     Scanner  (  file  );      while     (  sc  .  hasNextLine  ())      System  .  out  .  println  (  sc  .  nextLine  ());      }   }   


Sortir

Utilisation de BufferReaderSortir

Exemple 2 : Sans utiliser de boucles

Java
   import     java.io.*  ;   import     java.util.Scanner  ;   public     class   ReadingEntireFileWithoutLoop     {      public     static     void     main  (  String  []     args  )      throws     IOException      {      BufferedReader     br     =     new     BufferedReader  (  new     InputStreamReader  (  System  .  in  ));      System  .  out  .  print  (  'Enter the Path : '  );          // Reading File name      String     path     =     br  .  readLine  ();          File     file     =     new     File  (  path  );          Scanner     sc     =     new     Scanner  (  file  );      // we just need to use \Z as delimiter      sc  .  useDelimiter  (  '\Z'  );      System  .  out  .  println  (  sc  .  next  ());      }   }   


Sortir

LectureFichierEntierSansBoucleSortir

4. Lire l'intégralité du fichier dans une liste

Nous pouvons lire un fichier texte entier dans une liste en utilisant le Fichiers.readAllLines() méthode de la paquet java.nio.file . Chaque ligne du fichier devient un élément de la liste.

Syntaxe

La liste statique publique readAllLines (Path pathCharset cs) lance IOException

Cette méthode reconnaît les éléments suivants comme terminateurs de ligne : 

  • u000Du000A -> Retour chariot + Saut de ligne
  • u000A -> Saut de ligne
  • u000D -> Retour chariot
Java
   import     java.io.*  ;   import     java.nio.charset.StandardCharsets  ;   import     java.nio.file.*  ;   import     java.util.*  ;   public     class   ReadFileIntoList      {      public     static     List   <  String  >     readFileInList  (  String     fileName  )      {      // Created List of String      List   <  String  >     lines     =     Collections  .  emptyList  ();          try     {      lines     =     Files  .  readAllLines  (      Paths  .  get  (  fileName  )      StandardCharsets  .  UTF_8  );      }     catch  (  IOException     e  )     {      e  .  printStackTrace  ();      }          return     lines  ;      }          public     static     void     main  (  String  []     args  )      throws     IOException      {          BufferedReader     br     =     new      BufferedReader  (  new     InputStreamReader  (  System  .  in  ));      System  .  out  .  print  (  'Enter the Path : '  );          // Reading File name      String     path     =     br  .  readLine  ();          List     l     =     readFileInList  (  path  );          // Iterator iterating over List      Iterator   <  String  >     itr     =     l  .  iterator  ();          while     (  itr  .  hasNext  ())      System  .  out  .  println  (  itr  .  next  ());      }   }   


Sortir

LireFichierDansListeSortir

5. Lire un fichier texte sous forme de chaîne

Nous pouvons lire un fichier texte entier sous la forme d’une seule chaîne en Java. Ceci est utile lorsque vous souhaitez traiter le contenu du fichier dans son ensemble plutôt que ligne par ligne.

Syntaxe:

Données de chaîne = new String(Files.readAllBytes(Paths.get(fileName)));

Exemple:

Java
   package     io  ;   import     java.nio.file.*  ;   public     class   ReadTextAsString     {      public     static     String     readFileAsString  (  String     fileName  )      throws     Exception      {      String     data     =     ''  ;      data     =     new     String  (      Files  .  readAllBytes  (  Paths  .  get  (  fileName  )));      return     data  ;      }      public     static     void     main  (  String  []     args  )     throws     Exception      {      BufferedReader     br     =     new     BufferedReader  (  new     InputStreamReader  (  System  .  in  ));      System  .  out  .  print  (  'Enter the Path : '  );          // Reading File name      String     path     =     br  .  readLine  ();          String     data     =     readFileAsString  (  path  );          System  .  out  .  println  (  data  );      }   }   

Sortir

LireTexteAsStringSortir

Créer un quiz