Как читать с файла в Java с помощью BufferedReader, Scanner, Files и FileReader

Как читать с файла в Java с помощью BufferedReader, Scanner, Files и FileReader

При работе с файлами в Java очень часто нужно выполнять операции чтения данных. Именно поэтому сегодня мы рассмотрим различные способы прочитать файл в Java.

Читаем информацию с файла. Теория

  1. В Java есть класс java.nio.file.Files, который позволяет прочитать все содержимое файла в массив байтов или считать все строки в список. Класс Files был введен в Java 7 и отлично подходит, если нам нужно загрузить все содержимое файла. Следует отметить важный момент: желательно использовать этот метод только тогда, когда работаем с небольшими файлами, так как все содержимое это файла будет в памяти.

  2. Класс java.io.FileReader. Мы можем использовать FileReader, чтобы получить BufferedReader, а затем считывать файлы построчно. FileReader не поддерживает кодировку и работает с кодировкой системы по умолчанию, так что это не очень эффективный способ чтения файла в Java, но все же имеет право на жизнь.

  3. Класс java.io.BufferedReader отлично подходит для чтения файла построчно и дальнейшей обработки считанной информации. Он очень хорошо справляет с обработкой больших файлов и поддерживает кодировку файла. BufferedReader является синхронизируемым, а поэтому значит, что операции чтения с помощью BufferedReader можно безопасно выполнять из нескольких потоков. Размер буфера BufferedReader по умолчанию составляет 8 Кбайт.

  4. Класс java.util.Scanner отлично подходит для чтения файла построчно. Сканер разбивает входные данные на лексемы используя разделитель, который по умолчанию соответствует пробелу. Полученные лексемы могут быть затем преобразованы в значения разных типов с использованием различных методов. Сканер не синхронизирован, следовательно, не потокобезопасный.

Ниже представлен класс на Java для чтения содержимого файла с помощью Scanner, Files, BufferedReader с поддержкой кодировки и FileReader:

Какой метод считывания с файла лучше использовать?

Выбор между ScannerBufferedReader или Files зависит от требований вашего проекта.

  • Если вам нужно считывать с файла, опираясь на разделитель, то желательно использовать класс Scanner.
  • Если файл небольшой, то используем класс Files.
  • Если нужно считать информация с больших файлов, то отлично подойдет BufferedReader.

Следите за обновлениями раздела Java IO.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *