Verschiedene Möglichkeiten zum Lesen einer Textdatei in Java

Verschiedene Möglichkeiten zum Lesen einer Textdatei in Java

In Java gibt es je nach Datengröße und Anwendungsfall mehrere Möglichkeiten, eine Textdatei zu lesen. Der java.io Und java.nio.file-Pakete Stellen Sie mehrere Klassen bereit, um das Lesen von Dateien effizient zu handhaben. Lassen Sie uns nacheinander die gängigen Ansätze besprechen.

1. Verwenden der BufferedReader-Klasse

BufferedReader Die Klasse liest Text aus einem Zeichenstrom und puffert die Zeichen für ein effizientes Lesen. Es wird oft um ein gewickelt FileReader oder InputStreamReader um die Leistung zu verbessern.

Syntax

BufferedReader in = new BufferedReader(Reader in int size);

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  );      }   }   


Ausgabe

Verwenden von BufferReaderAusgabe

2. FileReader-Klasse zum Lesen von Textdateien

Der FileReader-Klasse wird zum Lesen von Textdateien in Java verwendet. Es liest Zeichen aus einer Datei und eignet sich zum Lesen von Klartext. Die Konstruktoren dieser Klasse gehen davon aus, dass die Standardzeichenkodierung und die Standardbytepuffergröße angemessen sind. 

In dieser Klasse definierte Konstruktoren sind wie folgt:

  • FileReader (Dateidatei): Erstellt einen neuen FileReader mit der Datei, aus der gelesen werden soll
  • FileReader(FileDescriptor fd): Erstellt einen neuen FileReader mit dem FileDescriptor, aus dem gelesen werden soll
  • FileReader(String fileName): Erstellt einen neuen FileReader mit dem Namen der Datei, aus der gelesen werden soll
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  );      }   }   


Ausgabe

Verwenden von FileReaderAusgabe

3. Scannerklasse zum Lesen von Textdateien

Scannerklasse bietet eine einfache Möglichkeit, Textdateien zu lesen und primitive Typen oder Zeichenfolgen zu analysieren reguläre Ausdrücke . Es teilt die Eingabe mithilfe eines Trennzeichens (standardmäßig Leerzeichen) in Token auf.

Beispiel 1: Mit Verwendung von Schleifen

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  ());      }   }   


Ausgabe

Verwenden von BufferReaderAusgabe

Beispiel 2: Ohne Schleifen zu verwenden

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  ());      }   }   


Ausgabe

ReadingEntireFileWithoutLoopAusgabe

4. Die gesamte Datei in einer Liste lesen

Mit dem können wir eine ganze Textdatei in eine Liste einlesen Files.readAllLines() Methode aus der java.nio.file-Paket . Jede Zeile in der Datei wird zu einem Element in der Liste.

Syntax

öffentliche statische Liste readAllLines(Path pathCharset cs) löst eine IOException aus

Diese Methode erkennt Folgendes als Zeilenabschlusszeichen: 

  • u000Du000A -> Wagenrücklauf + Zeilenvorschub
  • u000A -> Zeilenvorschub
  • u000D -> Wagenrücklauf
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  ());      }   }   


Ausgabe

ReadFileIntoListAusgabe

5. Lesen Sie eine Textdatei als String

Wir können in Java eine ganze Textdatei als einen einzelnen String lesen. Dies ist nützlich, wenn Sie den Dateiinhalt als Ganzes und nicht Zeile für Zeile verarbeiten möchten.

Syntax:

String data = new String(Files.readAllBytes(Paths.get(fileName)));

Beispiel:

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  );      }   }   

Ausgabe

ReadTextAsStringAusgabe

Quiz erstellen

Das Könnte Ihnen Gefallen