В данном мануале мы разберем разные способы построчного считывания содержимого файла с помощью Java. Это можно сделать с помощью следующих классов Java: java.io.BufferedReader, java.util.Scanner, Files.readAllLines() и java.io.RandomAccessFile.
Чтение файла с помощью BufferedReader
Читать файл построчно можно с помощью метода readLine() из java.io.BufferedReader. Этот метод возвращает null при достижении конца файла.
Пример считывания с помощью BufferedReader:
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);
// read next line
line = reader.readLine();
}
reader.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
Узнайте больше о BufferedReader в API Doc (Java SE 8).
Чтение файла с помощью Scanner
С помощью класса Scanner можно открыть файл, а затем построчно прочитать его содержимое.
Ниже приведен пример чтения файла с помощью Scanner:
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();
}
}
}
Рекомендуем узнать больше о Scanner в API Doc (Java SE 8).
Чтение файла с помощью java.nio.file.Files
java.nio.file.Files — это класс утилит, в котором есть разные полезные методы. С помощью метода readAllLines() можно прочитать все строки файла в виде списка.
Пример построчного чтения файла с помощью Files:
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 allLines = Files.readAllLines(Paths.get("sample.txt"));
for (String line : allLines) {
System.out.println(line);
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
Рекомендуем подробнее ознакомиться с Files в API Doc (Java SE 8).
Чтение файла с помощью RandomAccessFile
С помощью RandomAccessFile можно открыть файл в read mode, а затем с помощью метода readLine прочитать файл построчно.
Пример работы RandomAccessFile:
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();
}
}
}
Узнайте больше о RandomAccessFile в API Doc (Java SE 8).
Заключение
В этом мануале мы разобрали разные способы построчного чтения содержимого файла с помощью Java.
Читайте также: Отправка HTTP-запросов GET и POST в Java
