Сегодня мы рассмотрим одну из наиболее частых операций с файлами в Java, а именно построчное считывание содержимого файла.
Программа ниже покажет это на примере.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
package ua.com.prologistic; import java.io.BufferedReader; import java.io.File; import java.io.FileNotFoundException; import java.io.FileReader; import java.io.IOException; public class ReadFileLineByLine { // построчное считывание файла public static void main(String[] args) { try { File file = new File("/Users/prologistic/file.txt"); //создаем объект FileReader для объекта File FileReader fr = new FileReader(file); //создаем BufferedReader с существующего FileReader для построчного считывания BufferedReader reader = new BufferedReader(fr); // считаем сначала первую строку String line = reader.readLine(); while (line != null) { System.out.println(line); // считываем остальные строки в цикле line = reader.readLine(); } } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } } |
Вот такой простой и эффективный способ построчного считывания файла.
Следите за остальными статьями из раздела «Операции ввода-вывода«.
Подскажите пожалуйста, как каждый элемент при считывании из файла добавить в коллекцию, чтобы потом эту коллекцию прогнать через другой метод. Скажем в файле находиться урлы, и хочеться их прочитать, а потом открыть..
Давайте рассмотрим ситуацию, где каждый урл в файле находится на отдельной строке. В этом случае Вам нужно вначале метода создать список, например,
List < String > listOfUrls = new ArrayList<>();
и затем в приведенном выше коде заменить кодline = reader.readLine();
наlistOfUrls.add(reader.readLine())
. Далее просто передаете полученный список ссылок в качестве параметра в свой метод. Удачи!Спасибо, очень помогло
Где закрытие ресурсов-то? Путь хардкодить в том же методе — очень плохо. Лучше уже вынести если не в отдельный класс, то хоть в отдельный метод, принимающий путь
А как сделать так, чтобы каждая строка становилась переменной, например первая строка была переменной String name, вторая int age и так далее