РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
865 of 1163 menu

Класс FileReader

Класс FileReader используется для чтения символьных данных из файла. Он наследуется от класса InputStreamReader и работает с текстовыми файлами, преобразуя байты в символы с помощью кодировки по умолчанию. В конструктор мы передаём объект File, строку с путём к файлу или объект FileDescriptor. Класс поддерживает чтение по одному символу через метод read и чтение в массив символов через перегруженную версию этого метода. После завершения работы поток необходимо закрыть методом close или использовать конструкцию try-with-resources.

Синтаксис

FileReader reader = new FileReader("path/to/file.txt"); FileReader reader = new FileReader(new File("path/to/file.txt"));

Пример

Давайте создадим файл, запишем в него строку и прочитаем её посимвольно с помощью FileReader:

import java.io.FileReader; import java.io.FileWriter; import java.io.IOException; public class Main { public static void main(String[] args) { try (FileWriter writer = new FileWriter("test.txt")) { writer.write("abcde"); } catch (IOException e) { e.printStackTrace(); } try (FileReader reader = new FileReader("test.txt")) { int ch; while ((ch = reader.read()) != -1) { System.out.print((char) ch); } } catch (IOException e) { e.printStackTrace(); } } }

Результат выполнения кода:

"abcde"

Пример

Давайте прочитаем содержимое файла в массив символов и выведем его на экран:

import java.io.FileReader; import java.io.FileWriter; import java.io.IOException; public class Main { public static void main(String[] args) { try (FileWriter writer = new FileWriter("test.txt")) { writer.write("12345"); } catch (IOException e) { e.printStackTrace(); } try (FileReader reader = new FileReader("test.txt")) { char[] buffer = new char[5]; int count = reader.read(buffer); System.out.println("Прочитано символов: " + count); System.out.println(new String(buffer, 0, count)); } catch (IOException e) { e.printStackTrace(); } } }

Результат выполнения кода:

"Прочитано символов: 5" "12345"

Пример

Давайте посмотрим, что вернёт метод read, когда файл закончится. При достижении конца файла метод возвращает -1:

import java.io.FileReader; import java.io.FileWriter; import java.io.IOException; public class Main { public static void main(String[] args) { try (FileWriter writer = new FileWriter("test.txt")) { writer.write("ab"); } catch (IOException e) { e.printStackTrace(); } try (FileReader reader = new FileReader("test.txt")) { System.out.println(reader.read()); System.out.println(reader.read()); System.out.println(reader.read()); } catch (IOException e) { e.printStackTrace(); } } }

Результат выполнения кода:

97 98 -1

Смотрите также

  • класс FileWriter,
    который записывает символы в файл
  • класс InputStreamReader,
    который читает байты и декодирует их в символы
  • класс BufferedReader,
    который буферизует чтение символов
  • класс FileInputStream,
    который читает байты из файла
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить