JavaRush/Помощь по Java задачам/В чём проблема?Ракульник24 уровень25.12.2019628просмотров7комментариевВ чём проблема?Вопрос по задаче Файл в статическом блоке Java Core, 5 уровень, 12 лекция Решен Не понимаю, что не так...УсловиеДерево классовДля решения этой задачи: Инициализируй переменную Statics.FILE_NAME полным путем к файлу с данными, который содержит несколько строк. В статическом блоке считай из файла с именем Statics.FILE_NAME все строки и добавь их по отдельности в List lines. Требования:Константа FILE_NAME не должна быть пустой.В статическом блоке все строки из файла с именем FILE_NAME должны быть добавлены по отдельности в список lines.Поле FILE_NAME НЕ должно быть final.Класс Solution должен содержать список lines.com.javarush.task.task15.task1525Statics.javaSolution.javaStatics.java package com.javarush.task.task15.task1525; public class Statics { public static String FILE_NAME ="C:\\MyCHEZH\\file.txt"; } 0 Комментарии (7) популярныеновыестарыеДля того, чтобы оставить комментарий Вы должны авторизоватьсяhidden #2185276Уровень 2225 декабря 2019, 19:42с файлами можно работать используя try-with-resources (чтобы после работы с файлами потоки сами вызывали close()) Тем самым это: static { try { File file=new File(Statics.FILE_NAME); BufferedReader bf=new BufferedReader(new FileReader(file)); while(true) { String line=bf.readLine(); if(line==null) break; Solution.lines.add(bf.readLine()); } bf.close(); } catch(Exception e){} } можно оформить так: static { try (BufferedReader bf = new BufferedReader(new FileReader(Statics.FILE_NAME))) { while(bf.ready()) { Solution.lines.add(bf.readLine()); } } catch(FileNotFoundException e) { System.err.println("file not found"); } catch (IOException e) { e.printStackTrace(); } } 0 hidden #2185276Уровень 2225 декабря 2019, 19:34File file=new File(Statics.FILE_NAME); BufferedReader bf = new BufferedReader(new FileReader(file)); можно сократить до BufferedReader bf = new BufferedReader(new FileReader(Statics.FILE_NAME)); 0 hidden #2185276Уровень 2225 декабря 2019, 19:32Цикл while я бы оформил так while(bf.ready()) { Solution.lines.add(bf.readLine()); } 0 РакульникУровень 2425 декабря 2019, 19:29Заменил на Solution.lines.add(line), всё-равно не работает( 0 РакульникУровень 2425 декабря 2019, 19:27Спасибо! Вот я балбес... +1 hidden #2185276Уровень 2225 декабря 2019, 19:27решениеСтрока которая записалась в String line не используется +2 Алексей ПотапахинУровень 2925 декабря 2019, 19:20решениепроблема здесь Solution.lines.add(bf.readLine()); +2