Построчное чтение файла в Java — BufferedReader и Files.lines

Программа на Java для чтения содержимого файла построчно.

Для понимания этого примера нужно знать следующие темы Java:

  • Класс java.io.File

  • Класс java.io.BufferedInputStream

  • Класс java.io.FileReader

Пример 1: чтение файла с помощью BufferedInputStream

import java.io.BufferedInputStream;
import java.io.FileInputStream;

class Main {
  public static void main(String[] args) {
    try {

      // Creates a FileInputStream
      FileInputStream file = new FileInputStream("input.txt");

      // Creates a BufferedInputStream
      BufferedInputStream input = new BufferedInputStream(file);

      // Reads first byte from file
      int i = input .read();

      while (i != -1) {
        System.out.print((char) i);

        // Reads next byte from the file
        i = input.read();
      }
      input.close();
    }

    catch (Exception e) {
      e.getStackTrace();
    }
  }
}

Вывод:

First Line
Second Line
Third Line
Fourth Line
Fifth Line

В этом примере мы использовали класс BufferedInputStream, чтобы прочитать каждую строку из файла input.txt.

Примечание

Чтобы программа сработала, в текущем рабочем каталоге должен быть файл input.txt.

Пример 2: чтение файла с помощью BufferedReader

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

class Main {
  public static void main(String[] args) {

    // Creates an array of character
    char[] array = new char[100];

    try {
      // Creates a FileReader
      FileReader file = new FileReader("input.txt");

      // Creates a BufferedReader
      BufferedReader input = new BufferedReader(file);

      // Reads characters
      input.read(array);
      System.out.println("Data in the file: ");
      System.out.println(array);

      // Closes the reader
      input.close();
    }

    catch(Exception e) {
      e.getStackTrace();
    }
  }
}

Вывод:

Data in the file:
First Line
Second Line
Third Line
Fourth Line
Fifth Line

В этом примере мы использовали класс BufferedReader для чтения файла input.txt.

Пример 3: чтение файла с помощью Scanner

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

class Main {
  public static void main(String[] args) {

    try {
      // create a new file object
      File file = new File("input.txt");

      // create an object of Scanner
      // associated with the file
      Scanner sc = new Scanner(file);

      // read each line from file and print it
      System.out.println("Reading File Using Scanner:");
      while(sc.hasNextLine()) {
        System.out.println(sc.nextLine());
      }

      // close scanner
      sc.close();
    } catch (Exception e) {
      e.getStackTrace();
    }
  }
}

Вывод:

Reading File Using Scanner:
First Line
Second Line
Third Line
Fourth Line
Fifth Line

В этом примере мы создали объект класса File с именем file. Затем создали объект Scanner, связанный с этим файлом.

Здесь мы использовали методы Scanner:

  • hasNextLine() — возвращает true, если в файле есть следующая строка

  • nextLine() — возвращает целую строку из файла