Diferentes formas de leer un archivo de texto en Java

Diferentes formas de leer un archivo de texto en Java

En Java, existen varias formas de leer un archivo de texto según el tamaño de los datos y el caso de uso. El java.io y paquetes java.nio.file Proporciona varias clases para manejar la lectura de archivos de manera eficiente. Analicemos los enfoques comunes uno por uno.

1. Usando la clase BufferedReader

Lector almacenado en búfer La clase lee texto de una secuencia de caracteres y almacena los caracteres en buffer para una lectura eficiente. A menudo se envuelve alrededor de un Lector de archivos o Lector de flujo de entrada para mejorar el rendimiento.

Sintaxis

BufferedReader en = nuevo BufferedReader (Lector en tamaño 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  );      }   }   


Producción

UsandoBufferReaderProducción

2. Clase FileReader para leer archivos de texto

El clase lector de archivos se utiliza para leer archivos de texto en Java. Lee caracteres de un archivo y es adecuado para leer texto sin formato. Los constructores de esta clase asumen que la codificación de caracteres predeterminada y el tamaño del búfer de bytes predeterminado son apropiados. 

Los constructores definidos en esta clase son los siguientes:

  • FileReader (archivo de archivo): Crea un nuevo FileReader dado el archivo para leer
  • Lector de archivos(FileDescriptor fd): Crea un nuevo FileReader dado el FileDescriptor para leer
  • FileReader (nombre de archivo de cadena): Crea un nuevo FileReader dado el nombre del archivo para leer
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  );      }   }   


Producción

UsandoFileReaderProducción

3. Clase de escáner para leer archivos de texto

clase de escáner proporciona una manera sencilla de leer archivos de texto y analizar tipos primitivos o cadenas usando expresiones regulares . Divide la entrada en tokens usando un delimitador (por defecto, espacios en blanco).

Ejemplo 1: Con el uso de bucles

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


Producción

UsandoBufferReaderProducción

Ejemplo 2: Sin usar bucles

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


Producción

Leyendo el archivo completo sin bucleProducción

4. Leer el archivo completo en una lista

Podemos leer un archivo de texto completo en una Lista usando el Archivos.readAllLines() método de la paquete java.nio.file . Cada línea del archivo se convierte en un elemento de la lista.

Sintaxis

Lista pública estática readAllLines (Ruta rutaCharset cs) lanza IOException

Este método reconoce lo siguiente como terminadores de línea: 

  • u000Du000A -> Retorno de carro + avance de línea
  • u000A -> Avance de línea
  • u000D -> Retorno de carro
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  ());      }   }   


Producción

Leer archivo en listaProducción

5. Leer un archivo de texto como cadena

Podemos leer un archivo de texto completo como una sola cadena en Java. Esto resulta útil cuando desea procesar el contenido del archivo como un todo en lugar de línea por línea.

Sintaxis:

Datos de cadena = new String(Files.readAllBytes(Paths.get(fileName)));

Ejemplo:

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

Producción

LeerTextoComoCadenaProducción

Crear cuestionario