Как записать массив в java-файл

Обновлено: 03.07.2024

Существует множество способов чтения и записи файлов в Java.

Обычно у нас есть некоторые данные в памяти, над которыми мы выполняем операции, а затем сохраняем их в файле. Однако, если мы хотим изменить эту информацию, нам нужно поместить содержимое файла обратно в память и выполнить операции.

Если, например, наш файл содержит длинный список, который мы хотим отсортировать, нам придется прочитать его в адекватную структуру данных, выполнить операции, а затем снова сохранить его — в данном случае ArrayList .

Для этого можно использовать несколько разных подходов:

  • Файлы.readAllLines()
  • Чтение файлов
  • Сканер
  • Буферизованное чтение
  • ObjectInputStream
  • API потоков Java

Файлы.readAllLines()

Начиная с Java 7, можно очень просто загрузить все строки файла в список ArrayList:

При необходимости мы также можем указать набор символов для обработки различных форматов текста:

Files.readAllLines() автоматически открывает и закрывает необходимые ресурсы.

Сканер

Каким бы красивым и простым ни был предыдущий метод, он полезен только для чтения файла построчно. Что произойдет, если все данные будут храниться в одной строке?

Scanner – это простой в использовании инструмент для анализа примитивных типов и строк. Использование Scanner может быть настолько простым или сложным, насколько захочет разработчик.

Простым примером того, когда мы предпочли бы использовать Scanner, был бы случай, когда в нашем файле была бы только одна строка, и данные необходимо преобразовать во что-то пригодное для использования.

разделитель – это последовательность символов, которую Сканер использует для разделения значений. По умолчанию в качестве разделителя используется ряд пробелов/табуляции (пробелы между значениями), но мы можем объявить собственный разделитель и использовать его для анализа данных.

Давайте посмотрим на пример файла:

В таком случае легко заметить, что все значения имеют общий разделитель. Мы можем просто объявить, что "-" в окружении любого количества пробелов является нашим разделителем.

Выполнение этого фрагмента кода даст нам ArrayList со следующими элементами:

С другой стороны, если бы мы использовали только разделитель по умолчанию (пробел), список ArrayList выглядел бы так:

Scanner имеет несколько полезных функций для анализа данных, таких как nextInt() , nextDouble() и т. д.

Важно: вызов .nextInt() НЕ вернет следующее значение int, которое можно найти в файле! Он вернет значение int только в том случае, если следующие элементы, которые сканер «сканирует», являются допустимым значением int, в противном случае будет выдано исключение. Простой способ убедиться, что исключение не возникнет, — это выполнить соответствующую проверку «имеет» — например, .hasNextInt() перед фактическим использованием .nextInt() .

Несмотря на то, что мы не видим, что при вызове таких функций, как scanner.nextInt() или scanner.hasNextDouble(), Scanner в фоновом режиме использует регулярные выражения.

Очень важно: чрезвычайно распространенная ошибка при использовании Scanner возникает при работе с файлами, состоящими из нескольких строк, и использовании .nextLine() в сочетании с .nextInt() , nextDouble() и т. д.< /p>

Давайте посмотрим на другой файл:

Часто новые разработчики, использующие Scanner, пишут такой код:

Бесплатная электронная книга: Git Essentials

Ознакомьтесь с нашим практическим руководством по изучению Git, включающим передовые практики, общепринятые стандарты и памятку. Перестаньте гуглить команды Git и на самом деле изучите их!

Этот код кажется логически правильным — мы читаем целое число из файла, затем следующую строку, затем второе целое число. Если вы попытаетесь запустить этот код, InputMismatchException будет сгенерировано без видимой причины.

Если вы начнете отлаживать и печатать то, что отсканировали, вы увидите, что int загружен, но String s пуст.

Почему? Первое, на что следует обратить внимание, это то, что как только Scanner считывает что-то из файла, он продолжает сканирование файла, начиная с первого символа после ранее проверенных данных.

Например, если бы у нас было "12 13 14" в файле и мы вызвали .nextInt() один раз, сканер впоследствии сделал бы вид, что в файле есть только " 13 14". Обратите внимание, что пробел между «12» и «13» все еще присутствует.

Второе важное замечание: первая строка в нашем файле example.txt содержит не только число 12 , но и так называемый "символ новой строки", и на самом деле это 12\n вместо 12. .

На самом деле наш файл выглядит так:

Когда мы впервые вызываем .nextInt() , Scanner считывает только число 12 и оставляет первый \n непрочитанным.

.nextLine() затем считывает все символы, которые сканер еще не прочитал, пока не достигнет первого символа \n, который он пропускает, а затем возвращает прочитанные символы. Именно в этом проблема в нашем случае - у нас остался лишний символ \n после чтения 12 .

Поэтому, когда мы звоним .nextLine() мы получаем в результате пустую строку, так как Scanner не добавляет символ \n к возвращаемой строке.

Теперь сканер находится в начале второй строки нашего файла, и когда мы пытаемся вызвать .nextInt() , сканер обнаруживает что-то, что не может быть преобразовано в целое число, и выдает вышеупомянутое исключение InputMismatchException .

Решения

  • Поскольку мы знаем, что именно не так в этом коде, мы можем жестко запрограммировать обходной путь. Мы просто «используем» символ новой строки между .nextInt() и .nextLine():
  • Учитывая, что мы знаем, как отформатирован файл example.txt, мы можем прочитать весь файл построчно и разобрать необходимые строки с помощью Integer.parseInt() :

Буферизованное чтение

BufferedReader считывает текст из потока ввода символов, но делает это путем буферизации символов для обеспечения эффективных операций .read(). Поскольку доступ к жесткому диску требует очень много времени, BufferedReader собирает больше данных, чем мы запрашиваем, и сохраняет их в буфере.

Идея состоит в том, что когда мы вызываем .read() (или подобную операцию), мы, скорее всего, скоро снова прочитаем тот же блок данных, из которого мы только что прочитали, и поэтому "окружающие" данные сохраняются в буфер. Если бы мы хотели его прочитать, мы бы читали его непосредственно из буфера, а не с диска, что намного эффективнее.

Это подводит нас к тому, для чего хорош BufferedReader — чтению больших файлов. BufferedReader имеет значительно больший объем буферной памяти, чем Scanner (8192 символа по умолчанию и 1024 символа по умолчанию соответственно).

BufferedReader используется в качестве оболочки для других Reader, поэтому конструкторы для BufferedReader принимают в качестве параметра объект Reader, например FileReader .

Мы используем попытку с ресурсами, поэтому нам не нужно закрывать программу чтения вручную:

Рекомендуется оборачивать FileReader в BufferedReader именно из-за повышения производительности.

ObjectInputStream

ObjectInputStream следует использовать только вместе с ObjectOutputStream . Эти два класса помогают нам сохранить объект (или массив объектов) в файле, а затем легко прочитать его из этого файла.

Это можно сделать только с классами, реализующими интерфейс Serializable. Интерфейс Serializable не имеет методов или полей и служит только для определения семантики сериализуемости:

API потоков Java

Начиная с Java 8, другим быстрым и простым способом загрузки содержимого файла в ArrayList будет использование Java Streams API:

Однако имейте в виду, что этот подход, как и Files.readAllLines(), будет работать, только если данные хранятся в строках.

Приведенный выше код не делает ничего особенного, и мы редко используем потоки таким образом. Однако, поскольку мы загружаем эти данные в ArrayList, чтобы мы могли их обрабатывать в первую очередь, потоки обеспечивают отличный способ сделать это.

Мы можем легко сортировать/фильтровать/сопоставлять данные перед их сохранением в ArrayList:

Заключение

Существует несколько различных способов чтения данных из файла в список ArrayList. Когда вам нужно только прочитать строки как элементы, используйте Files.readAllLines ; когда у вас есть данные, которые можно легко проанализировать, используйте Scanner; при работе с большими файлами используйте FileReader, обернутый BufferedReader; при работе с массивом объектов используйте ObjectInputStream (но убедитесь, что данные были записаны с использованием ObjectOutputStream ).

Для разработчиков это был самый простой способ закодировать его для получения содержимого файла, а также предпочтительный способ чтения файла, поскольку он требует меньшего количества вызовов для чтения, поскольку он использует символьный буфер, который одновременно считывает несколько значений из поток ввода символов.

Синтаксис:

BufferedReader также предоставляет метод readLine, который принимает всю строку в файле в виде строки.

Ниже приведен пример кода для хранения содержимого файла в массиве.

Пример:

Вывод:

Объяснение: в этом коде мы использовали BufferedReader для чтения и загрузки содержимого файла, а затем мы использовали метод readLine для получения каждой строки файла в виде строки и сохранения/добавления в ArrayList, и, наконец, мы преобразовали это ArrayList в массив с использованием метода toArray.

Но чтобы указать какой-либо разделитель для разделения данных в файле, в этом случае будет полезен сканер. Как мы видим, в первой строке файла есть 2 строки, но с помощью BufferedReader мы получили их как объединенную строку.

Примечание. При чтении файла, если файл находится в том же месте, где сохранен программный код, тогда не нужно указывать путь, просто укажите имя файла. Если файл находится в другом месте относительно места сохранения программы, мы должны указать путь вместе с именем файла.

2. Использование сканера для чтения файла

Сканер в основном используется для чтения данных от пользователей для примитивных типов данных.Но даже для получения данных из файла Scanner можно использовать вместе с File или FileReader для загрузки данных из файла. Этот сканер обычно разбивает токены на строки с помощью пробела разделителя по умолчанию, но даже мы можем явно указать другие разделители, используя метод useDelimiter.

Синтаксис:

Сканер присутствует в пакете util, который нам нужно импортировать перед его использованием, а также он предоставляет функции readLine() и hasNext() для проверки конца файла, т.е. есть ли какие-либо строки, доступные или нет для чтения.< /p>

Ниже приведен пример кода для сохранения содержимого файла в массиве с помощью Scanner.

В идеале я хотел бы иметь функцию, которой можно было бы передать массив, и этот массив перезаписал бы мой файл.

Я знаю, что должен начать все именно так, но я не знаю, как на самом деле писать в файл.

Я попытался воспроизвести пример из своей книги, но в нем не используется массив. Будем признательны за любые предложения.

Хорошо, я сказал слишком рано. Я просто присел на корточки, подумал и придумал это.

Проблема в том, что теперь все печатается в одну строку. Я что-то не так делаю с \n?

неважно, все выглядит хорошо в WordPad.

Надеюсь, это кому-нибудь поможет.

может быть, вы можете попробовать изменить это


хотя это дикая догадка..

Кажется, что печатается одна строка, потому что я просматривал файл в блокноте. Если вы просматриваете его в wordpad, появляется \n.

Кроме того, я изменил эту строку просто для того, чтобы навести порядок.

«Все должно быть так просто, как есть, но не проще». Альберт Эйнштейн

Может быть, вы хотите попробовать это?


Маршал

Джон Хо написал: возможно, вы хотите попробовать это?

В нем есть улучшение, использующее finally для закрытия модуля записи, но немного о if (. ) . истинный . еще ужасный стиль. Вы должны просто написать

pw = новый PrintWriter(новый FileWriter(fileName, appendToFile));

Блокнот — это одно из мест, где вы заметили, что \n не зависит от платформы. Для этого требуется правильный разделитель строк DOS/Windows "\r\n". WordPad, очевидно, может преобразовать \n в разделитель строк, как и многие другие приложения. Вам лучше использовать метод println(), или
Вам нужно "наконец" обойти Writer, иначе исключение после его создания предотвратит его закрытие и сохранит файл в использовании и недоступным для других приложений.
Обычный способ сделать это с помощью BufferedWriter будет выглядеть так (используется старомодный стиль). Конечно, начиная с Java 5, вы должны использовать Formatter и тег %n. Тег %n дает вам точный разделитель строк для вашей операционной системы. Это намного проще в использовании; вы можете проверить, есть ли какие-либо проблемы в конце, сказав
wroteOK = format.ioException() == null; Это означает, что вы возвращаете «false», если произошло исключение, в противном случае считайте, что все в порядке, и верните true. Однако вам, возможно, все же придется поймать исключение FileNotFoundException при создании файла для передачи в средство форматирования. Единственная проблема с форматтерами заключается в том, что вы не можете добавлять (по крайней мере, я никогда не находил, как добавлять с помощью форматирования).

Массив — это структура данных, содержащая группу элементов. Обычно все эти элементы имеют один и тот же тип данных, например целое число или строку. Массивы обычно используются в компьютерных программах для организации данных, чтобы связанный набор значений можно было легко сортировать или искать.

Что является примером массива?

Массив представляет собой прямоугольное расположение объектов в равных строках (по горизонтали) и равных столбцах (по вертикали). Повседневные примеры массивов включают лоток для кексов и коробку для яиц. Массив яиц. Набор коробок для сока.

Что такое элементы массива?

В компьютерном программировании массив представляет собой набор элементов данных, хранящихся под одним и тем же именем. Массивы могут быть созданы для хранения данных любого типа, и каждый элемент может быть индивидуально назначен и прочитан. Это могут быть массивы чисел, символов, предложений, логических значений и т. д.

Зачем использовать массивы в программировании?

Введение в преимущества массива Преимущества массива. Память может быть выделена динамически в массиве. Это преимущество массива помогает экономить память системы. Заключение. Следовательно, массивы более эффективны и выгодны по сравнению со связанными списками и хеш-таблицами. Они быстрее и могут быть использованы где угодно. Рекомендуемые статьи. Это было руководство по преимуществам массива.

Каковы примеры массивов?

Массив — это группа (или коллекция) данных одного типа. Например, массив int содержит элементы типов int, а массив float содержит элементы типов float.

Как создать массив в JavaScript?

Существует два способа создания массива в JavaScript: Литерал массива, в котором используются квадратные скобки.Конструктор массива, использующий ключевое слово new.

Как записать массив в текстовый файл?

Используйте numpy. savetxt() для сохранения массива в текстовый файл Вызовите open(file, mode) с режимом «w», чтобы открыть файл с именем file для записи. Используйте цикл for для перебора каждой строки массива. На каждой итерации вызывайте numpy. savetxt(fname, X) для записи текущей строки X в открытый файл fname .

Как писать в текстовый файл на Java?

txt с использованием класса Java FileWriter.

  1. пакет com.javatpoint;
  2. импортировать java.io.FileWriter;
  3. открытый класс FileWriterExample
  4. public static void main(String args[])
  5. попробовать
  6. FileWriter fw=new FileWriter("D:\\testout.txt");
  7. fw.write("Добро пожаловать в javaTpoint.");
  8. fw.close();

Как прочитать массив из файла?

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

  1. Создайте экземпляр Scanner или другого соответствующего класса для чтения данных из файла.
  2. Создайте массив для хранения содержимого.
  3. Чтобы скопировать содержимое, вам нужны два цикла, один из которых вложен в другой.
  4. Создайте внешний цикл, начиная с 0 и заканчивая длиной массива.

Что такое массив в Java?

Массив в Java — это набор переменных, на которые ссылается одно имя переменной в сочетании с порядковым номером. Каждый элемент массива является элементом. Все элементы массива должны быть одного типа. Например, массив int может содержать значения int, а массив String может содержать строки.

Какое использование файла в Java?

Класс Java File представляет пути к файлам и каталогам абстрактным образом. Этот класс используется для создания файлов и каталогов, поиска файлов, удаления файлов и т. д. Объект File представляет собой фактический файл/каталог на диске. Ниже приведен список конструкторов для создания объекта File.

Как записать массив Numpy в файл?

Вы можете сохранить массивы NumPy в файлы CSV с помощью функции savetxt(). Эта функция принимает имя файла и массив в качестве аргументов и сохраняет массив в формате CSV. Вы также должны указать разделитель; это символ, используемый для разделения каждой переменной в файле, чаще всего это запятая.

Как очистить текстовый файл в Java?

Как удалить строку внутри файла (.txt) в java?

  1. Получить содержимое файла в виде строки.
  2. Замените нужное слово пустой строкой с помощью метода replaceAll().
  3. Снова перепишите результирующую строку в файл.

Какая из следующих функций способна читать файл в массив?

Какая из следующих функций способна считывать файл в массив? Объяснение: Функция file() прочитает весь файл в массив.

Как объявить двумерный массив в Java?

Двумерный массив в Java можно определить следующим образом:

  1. int[][] multiples = new int[4][2]; // Массив двумерных целых чисел с 4 строками и 2 столбцами String[][] city = new String[3][3]; // массив двухмерных строк с 3 строками и 3 столбцами.
  2. int[][] неправильно = новый int[][]; // не в порядке, вы должны указать 1-е измерение int[][] right = new int[2][]; // ОК.

Как записать массив в строку в Java?

Написать программу для преобразования массива в строку на Java? Написать программу для реверсирования массива в JavaScript? Как создать и записать массив JSON в файл в java? Ниже приведен пример. Здесь наш файл «E:/demo.txt» —

Как записать содержимое файла в массив байтов в Java?

Как записать содержимое файла в массив байтов в Java? Написать программу для преобразования массива в строку на Java? Написать программу для реверсирования массива в JavaScript? Как создать и записать массив JSON в файл в java? Ниже приведен пример.

Как прочитать текстовый файл в массив строк?

Если вы предпочитаете выделенный сервер с графическим процессором, попробуйте хостинг с выделенным графическим процессором от Apps4Rent с первоклассной технической поддержкой 24*7*365 дней и помощью в миграции. Некоторый пример кода Java для чтения содержимого текстового файла в строковый массив, строка за строкой. Вот класс Java, который используется для вывода массива строк после того, как ему было передано местоположение файла:

Как написать текстовый файл на Java?

Если вы хотите добавить текст в существующий файл, передайте логический флаг true конструктору класса записи: * используйте BufferedReader для эффективности. bufferedWriter.write («Увидимся снова!»); Это предпочтительный способ записи в текстовый файл, поскольку BufferedReader обеспечивает эффективный способ записи потоков символов.

Как записать массив в файл?

Мы можем создать массив и использовать функцию print_r() для возврата массива и использовать функцию fwrite() для записи массива в файл. Функция print_r() принимает в качестве параметров массив для печати и логическое значение. Используйте функцию fopen() для создания файла file.

Как сохранить массив Numpy в текстовом файле?

Давайте посмотрим, как сохранить массив numpy в текстовый файл. Создание текстового файла с помощью встроенной функции open(), а затем преобразование массива в строку и запись его в текстовый файл с помощью функции write(). Наконец, закрытие файла с помощью функции close().

Как вы инициализируете массив в Java?

Чтобы инициализировать массив в Java, нам нужно выполнить следующие пять простых шагов: Выберите тип данных. Объявите массив. Создайте массив. Инициализировать значения. Протестируйте массив.

Каково основное использование массива в Java?

вместо объявления отдельных переменных для каждого значения.

Какие типы массивов существуют в Java?

Типы массивов Java. В Java существует два типа массивов. Одномерный массив: Верхние примеры — это все одномерные массивы. Многомерный массив: данные хранятся в индексе на основе строк и столбцов (также известном как матричная форма)

Как мне искать массив в Java?

Это программа на Java для поиска ключевых элементов в массиве. Введите размер массива, а затем введите все элементы этого массива. Теперь введите элемент, который вы хотите найти. С помощью цикла for мы можем легко узнать местоположение элемента. Вот исходный код Java-программы для поиска ключевых элементов в массиве.

Как создать массив файлов в Java?

  1. импортировать java.io.File;
  2. импортировать java.io.IOException;
  3. открытый класс CreateFileExample1.
  4. public static void main(String[] args)
  5. Файл file = new File("C:\\demo\\music.txt"); //инициализировать объект File и передать путь в качестве аргумента.
  6. логический результат;

Как написать целочисленный файл данных в Java?

Существует также очень простой способ записи целых чисел в файл с помощью FileWriter: Writer wr = new FileWriter("123. txt"); вр. написать(123 + ""); вр.

Является ли файл массивом?

files, dirs и allDocs — это массивы, объявленные внутри класса вне каких-либо методов. allDocs — это массив, который я использую для получения каждого каталога и файла в интересующем каталоге HR. Я делаю это с помощью allDocs = folder.

Как создать файл Java?

Как создать свою первую программу на Java

  1. Шаг 1. Создайте файл.
  2. Шаг 2. Напишите структуру своей программы.
  3. Шаг 3. Настройте «основной» метод.
  4. Шаг 4. Напишите инструкцию.
  5. Шаг 5. Сохраните программу.
  6. Шаг 6. Установите Java JDK.
  7. Шаг 7. Скопируйте путь к инструментам Java.
  8. Шаг 8. Откройте командную строку.

Как записать числа в файл в Java?

  1. Быстрое исправление: замените fout.write(i); с fout.write(Integer.toString(i).getBytes()); — Капил,
  2. Это ответ на ваш вопрос? Запишите int в текстовый файл с помощью Writer. Ashutosh Sharma 13 дек.

Как записать целое число в файл?

Использовать файл. write() и str() для записи целочисленных значений в файл. Откройте файл, используя open(имя файла, режим), чтобы открыть имя целевого файла с режимом «w», чтобы разрешить запись. Пока файл открыт, вызовите функцию str(integer), чтобы преобразовать целочисленный объект в строку. Использовать файл. write(string) для записи нового строкового значения в файл.

Можно ли записать массив в файл?

Я знаю, как записывать целые числа или строки в файл, но меня смущает перенос массива. Я использую это прямо сейчас:

Как создать и записать массив JSON в Java?

Как создать и записать массив JSON в файл в Java? Ниже приведен пример. Здесь наш файл «E: / demo.txt» — вывод выглядит следующим образом, т. е. текст в файле —

До Java 7 чтение текстового файла в ArrayList включало в себя много шаблонного кода, так как вам нужно читать файл построчно и вставлять каждую строку в ArrayList , но начиная с Java 7 вы можете использовать служебный метод Files.readAllLines() для чтения всех строк текстового файла в список. Этот метод возвращает список строк, содержащий все строки файлов. Позже вы можете преобразовать этот список в ArrayList, LinkedList или любой другой список, который вы хотите. Кстати, это четвертая статья из серии о чтении текстового файла на Java.

В предыдущих частях вы узнали, как читать файл с помощью Scanner и BufferedReader (1) . Затем чтение всего файла как строки (2) и, наконец, чтение текстового файла в массив (3). Эта программа не сильно отличается от других с точки зрения основ.

Мы по-прежнему будем использовать метод read() для решения Java 6 и будем читать весь текст, пока этот метод не вернет -1, что сигнализирует о конце файла.

Чтение текстового файла в ArrayList на Java — пример BufferedReader

Если вы знаете, как читать файл построчно, либо с помощью Scanner, либо с помощью BufferedReader, то чтение текстового файла в ArrayList не составит для вас труда. Все, что вам нужно сделать, это прочитать каждую строку и сохранить ее в ArrayList, как показано в следующем примере:


Не забудьте закрыть BufferedReader, когда закончите, чтобы предотвратить утечку ресурсов, так как в Java 6 нет инструкции try-with-resource.

Чтение текстового файла в список на Java — пример Files.readAllLines

В Java 7 вам не нужно писать код для чтения и сохранения в ArrayList, просто вызовите метод Files.readAllLines(), и он вернет вам список String, где каждый элемент является соответствующей строкой из линия. Поскольку список представляет собой упорядоченную коллекцию, порядок строк в файле сохраняется в списке. Позже вы можете преобразовать этот список в ArrayList или любую другую реализацию.

вот пример кода для чтения текстового файла в список в JDK 7:


Метод readAllLines() принимает CharSet , вы можете использовать предопределенный набор символов, например. StandardCharsets.UTF_8 или StandardCharsets.UTF_16 . Вы также можете просмотреть эти бесплатные курсы Java, чтобы узнать больше о новых классах файловых утилит, представленных в Java 7 и 8.

Программа Java для чтения текстового файла в ArrayList

Вот полная программа на Java, демонстрирующая оба метода чтения текстового файла в ArrayList. Эта программа сначала научит вас делать это в JDK 7 или Java 8, используя метод Files.readAllLines(), а затем используя BufferedReader и ArrayList в Java 6 и более ранних версиях.

Вы можете скомпилировать и запустить эту программу из командной строки или, если вы хотите запустить в Eclipse, просто скопируйте и вставьте в проект Java Eclipse. Eclipse IDE автоматически создаст для вас исходный файл.

Затем просто щелкните правой кнопкой мыши и выберите "Запустить как программу Java". Убедитесь, что у вас есть файл .txt в пути к классам. Поскольку здесь я указал относительный путь, убедитесь, что вы поместили этот файл в каталог проекта Eclipse.

Как прочитать текстовый файл в список на Java - пример

Чтение текстового файла в ArrayList в Java


Это все о том, как читать текстовый файл в ArrayList в Java. Вы можете видеть, что это очень просто в Java 7 и Java 8, используя метод Files.readAllLines(). Хотя вы должны помнить о кодировке символов при чтении текстового файла в Java.

В Java 6 решение с использованием BufferedReader или Scanner также не очень сложно реализовать, но вам нужно помнить, что вы загружаете весь файл в память.

Если файл слишком большой и у вас недостаточно памяти, ваша программа умрет, выдав ошибку java.lang.OutOfMemoryError: Java Heap Space . Короче говоря, это решение подходит только для небольших файлов, для больших файлов вы всегда должны читать в потоковом режиме.

Читайте также: