Cómo leer un archivo línea por línea en Java

Introducción

En este artículo, aprenderás sobre diferentes formas de usar Java para leer el contenido de un archivo línea por línea. Este artículo utiliza métodos de las siguientes clases de Java: java.io.BufferedReader, java.util.Scanner, Files.readAllLines() y java.io.RandomAccessFile.

Lectura de un archivo línea por línea usando BufferedReader

Puedes usar el método readLine() de java.io.BufferedReader para leer un archivo línea por línea como una cadena de texto. Este método devuelve null cuando se alcanza el final del archivo.

Aquí tienes un ejemplo de programa para leer un archivo línea por línea con BufferedReader:

ReadFileLineByLineUsingBufferedReader.java
package com.journaldev.readfileslinebyline;

import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;

public class ReadFileLineByLineUsingBufferedReader {

	public static void main(String[] args) {
		BufferedReader reader;

		try {
			reader = new BufferedReader(new FileReader("sample.txt"));
			String line = reader.readLine();

			while (line != null) {
				System.out.println(line);
				// leer siguiente línea
				line = reader.readLine();
			}

			reader.close();
		} catch (IOException e) {
			e.printStackTrace();
		}
	}

}

Continúa tu aprendizaje con la Documentación de la API de BufferedReader (Java SE 8).

Leyendo un archivo línea por línea usando Scanner

Puedes usar la clase Scanner para abrir un archivo y luego leer su contenido línea por línea.

Aquí tienes un ejemplo de programa para leer un archivo línea por línea con Scanner:

ReadFileLineByLineUsingScanner.java
package com.journaldev.readfileslinebyline;

import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;

public class ReadFileLineByLineUsingScanner {

	public static void main(String[] args) {
		try {
			Scanner scanner = new Scanner(new File("sample.txt"));

			while (scanner.hasNextLine()) {
				System.out.println(scanner.nextLine());
			}

			scanner.close();
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		}
	}

}

Continúa tu aprendizaje con la Documentación de la API de Scanner (Java SE 8).

Leyendo un archivo línea por línea usando Files

java.nio.file.Files es una clase de utilidad que contiene varios métodos útiles. El método readAllLines() puede ser usado para leer todas las líneas del archivo en una lista de cadenas.

Aquí tienes un ejemplo de programa para leer un archivo línea por línea con Files:

ReadFileLineByLineUsingFiles.java
package com.journaldev.readfileslinebyline;

import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.util.List;

public class ReadFileLineByLineUsingFiles {

	public static void main(String[] args) {
		try {
			List<String> allLines = Files.readAllLines(Paths.get("sample.txt"));

			for (String line : allLines) {
				System.out.println(line);
			}
		} catch (IOException e) {
			e.printStackTrace();
		}
	}

}

Continúa tu aprendizaje con el Files API Doc (Java SE 8).

Leyendo un archivo línea por línea usando RandomAccessFile

Puedes usar RandomAccessFile para abrir un archivo en modo de lectura y luego usar su método readLine para leer un archivo línea por línea.

Aquí tienes un ejemplo de programa para leer un archivo línea por línea con RandomAccessFile:

ReadFileLineByLineUsingRandomAccessFile.java
package com.journaldev.readfileslinebyline;

import java.io.IOException;
import java.io.RandomAccessFile;

public class ReadFileLineByLineUsingRandomAccessFile {

	public static void main(String[] args) {
		try {
			RandomAccessFile file = new RandomAccessFile("sample.txt", "r");
			String str;

			while ((str = file.readLine()) != null) {
				System.out.println(str);
			}

			file.close();
		} catch (IOException e) {
			e.printStackTrace();
		}
	}

}

Continúa tu aprendizaje con el RandomAccessFile API Doc (Java SE 8).

Conclusión

En este artículo, aprendiste sobre diferentes formas de usar Java para leer el contenido de un archivo línea por línea.

Continúa tu aprendizaje con más tutoriales de Java.

Source:
https://www.digitalocean.com/community/tutorials/java-read-file-line-by-line