Existen las siguientes formas de leer un archivo línea por línea.
- Clase BufferedReader
- clase de escáner
Usando la clase BufferedReader
Usar la clase Java BufferedRedaer es la forma más común y sencilla de leer un archivo línea por línea en Java. Pertenece a java.io paquete. La clase Java BufferedReader proporciona el método readLine() para leer un archivo línea por línea. La firma del método es:
public String readLine() throws IOException
El método lee una línea de texto. Devuelve una cadena que contiene el contenido de la línea. La línea debe terminar con cualquiera de los siguientes: avance de línea (' ') o retorno de carro (' ').
Ejemplo de lectura de un archivo línea por línea usando la clase BufferedReader
partido_preg
En el siguiente ejemplo, la clase FileReader lee Demo.txt. El método readLine() de la clase BufferedReader lee el archivo línea por línea y cada línea se agrega a StringBuffer, seguida de un salto de línea. Luego, el contenido del StringBuffer se envía a la consola.
import java.io.*; public class ReadLineByLineExample1 { public static void main(String args[]) { try { File file=new File('Demo.txt'); //creates a new file instance FileReader fr=new FileReader(file); //reads the file BufferedReader br=new BufferedReader(fr); //creates a buffering character input stream StringBuffer sb=new StringBuffer(); //constructs a string buffer with no characters String line; while((line=br.readLine())!=null) { sb.append(line); //appends line to string buffer sb.append(' '); //line feed } fr.close(); //closes the stream and release the resources System.out.println('Contents of File: '); System.out.println(sb.toString()); //returns a string that textually represents the object } catch(IOException e) { e.printStackTrace(); } } }
Producción:
Usando la clase Escáner
Java Escáner La clase proporciona más métodos de utilidad en comparación con la clase BufferedReader. La clase Java Scanner proporciona el método nextLine() para facilitar línea por línea el contenido del archivo. Los métodos nextLine() devuelven la misma cadena que el método readLine(). La clase Scanner también puede leer un archivo desde InputStream.
Ejemplo de lectura de un archivo línea por línea usando la clase Scanner
import java.io.*; import java.util.Scanner; public class ReadLineByLineExample2 { public static void main(String args[]) { try { //the file to be opened for reading FileInputStream fis=new FileInputStream('Demo.txt'); Scanner sc=new Scanner(fis); //file to be scanned //returns true if there is another line to read while(sc.hasNextLine()) { System.out.println(sc.nextLine()); //returns the line that was skipped } sc.close(); //closes the scanner } catch(IOException e) { e.printStackTrace(); } } }
Producción: