Файл в статическом блоке

  • 8
  • Недоступна
Инициализируйте переменную Statics.FILE_NAME полным путем к файлу с данными, который содержит несколько строк. После этого в статическом блоке считайте из файла с именем Statics.FILE_NAME все строки, и добавьте их по отдельности в List lines.
Вы не можете решать эту задачу, т.к. не залогинены.
Комментарии (143)
  • популярные
  • новые
  • старые
Для того, чтобы оставить комментарий вы должны авторизоваться
Cruelz15 уровень, Санкт-Петербург
вчера, 13:14
Для тех, кто ищет современные решения или отличные от тех, что были на курсе - посмотри в сторону использования того, что ввели в 8ой Java. Сокращает кучу кода.
Files.lines(Paths.get(Statics.FILE_NAME))
Андрей 16 уровень, Иркутск
позавчера, 16:08
Всегда, когда в задаче нужно считать что-то из файла- пересматриваю это видео, очень полезное.
Andrej Kostin18 уровень, Рига
22 июля, 15:49
В условиях не сказано в каком классе должен находиться статический блок, где происходит считывание и добавление элементов в список.
Roman15 уровень, Киев
15 июля, 13:02
IMHO, в данном случае(учитывая требование построчного считывания файла) нам больше подойдёт Scanner + FileReader т.к. у Scanner есть удобный метод hesNext(). Как вариант мы можем считать строки из файла в цикле: while (scanner.hasNext()) и добавить в lines методом scanner.nextLine().
28 июля, 14:39
Буффер в связке с Filereader такой же функционал реализовывают:
while (reader.ready()){
                lines.add(reader.readLine());
Andrew Grini (AG)16 уровень, Кишинев
5 июля, 08:45
https://vertex-academy.com/tutorials/ru/filewriter-i-filereader/ Информация из статьи оказалась для меня очень полезной при решении задачи.
Сергей18 уровень
3 июля, 15:30
Валидатор не пропускает второе условие. Я прочитал все комменты до самого конца. Пробовал пять вариантов решений, которые работали одинаково. txt файл такой: some what what is the type nothing ---------закончился---------- результат работы всех вариантов такой: [some, what, what is the type, nothing] Вроде всё правильно, но валидатор не пропускает. Всё это в винде. Может кто-то сталкивался?
Andrew Grini (AG)16 уровень, Кишинев
5 июля, 08:30
код что ли скиньте, постараемся вам помочь
Andrew Grini (AG)16 уровень, Кишинев
5 июля, 08:43
лично мне очень помогла эта статья, решал через FileReader, быстро и без проблем.
Слава18 уровень, Москва
14 июля, 13:09
Считывание из файла должно происходить до тех пор, пока есть что считывать.
Сергей18 уровень
15 июля, 06:49
Во втором и пятом способе есть такая проверка. Все эти способы приводят к одному и тому же правильному результату, но валидатор не пропускает. В этом то и есть главный вопрос. Если я не правильно Вас понял, напишите, пожалуйста, более развёрнуто то, что Вы хотели сказать. Спасибо.
Слава18 уровень, Москва
15 июля, 09:35
Можно посмотреть на вашу проверку?
Denis Baranov16 уровень, Sankt Petersburg
26 июля, 19:16
У меня так же не проходило по этому условию. Оказалось, что static блок должен быть в классе Solution, а у меня был в Statics. После этого сразу решение прошло.
Сергей18 уровень
27 июля, 11:47
У меня так и есть: public class Solution { public static List<String> lines = new ArrayList<String>(); static { try { и т.д.
Сергей16 уровень, Тюмень
24 июня, 02:36
Для чтения файла построчно удобно использовать FileReader, обернутый BufferedReader'ом. BufferedReader reader = new BufferedReader(new FileReader(Statics.FILE_NAME)) И в цикле, строку за строкой читаем и добавляем в список Lines.
Andrew Grini (AG)16 уровень, Кишинев
5 июля, 08:46
большое спасибо, натолкнули на верный путь
Fischerski17 уровень, Москва
8 июля, 13:54
А еще удобней если использовать класс Path из библиотеки java.nio.file. Так задача решается с добавлением двух строк.
Ivan Matveenko25 уровень, Омск
19 июня, 10:38
чего-то я не понял эту конструкцию for (Object o : f.lines().toArray()) { lines.add(o.toString()); }
Dr_Lex20 уровень, Чебоксары
28 мая, 21:10
Написал сначала рабочий код на Bufferedreader, но валидатор упорно ругался на 2-е условие, хотя все работало идеально. От безысходности залез сюда почитать комменты. В итоге попробовал
list = Files.readAllLines(Paths.get(Statics.FILE_NAME), StandardCharsets.UTF_8);
но валидатор по-прежнему не принимал решение. Помучавшись только с 9-й попытки я нашел причину. Статический блок у меня был размещен в классе Statics, у нужно в было в классе Solution. абзац короче
Vitalachka22 уровень, Лондон
14 мая, 20:33
С ходу не особо вникая сделала вот так
List<String> lines = Files.readAllLines(Paths.get("C:\\Users\\Username\\Desktop\\pushkin.txt"), UTF_8);
Вот статья
misha22 уровень, Улан-Батор
23 июня, 07:04
стильно :)
Михаил Клименко17 уровень, Краснодар
15 июля, 08:30
Какая красота, спасибо :)