try {
BufferedReader br = new BufferedReader(new FileReader(Statics.FILE_NAME)); //здесь все понятно
for (Object o : br.lines().toArray()) { // норм описания lines() так и не нашёл. Только это-Метод lines () является статическим методом. Он возвращает поток
// строк, извлеченных из заданной многострочной строки, разделенных разделителями строк.
// Зачем здесь toArray()?
// почему нельзя просто list.add(br.readLine()); в цикле с условием while(br.readLine()!=null) ???
lines.add(o.toString()); // зачем toString() ведь lines() и так String возвращает?
} //как можно без lines() решить задачу?
} catch (IOException e) { // вроде все просто, но не понимаю как по другому решить.Объясните эту запись for (Object o : br.lines().toArray())
e.printStackTrace();
}
странно, у меня статический блок вот так валидатор принял и успокоился. Вроде идентичны.
static {
try {
BufferedReader f = new BufferedReader(new FileReader(Statics.FILE_NAME));
for (Object o : f.lines().toArray()) {
lines.add(o.toString());
}
}catch (IOException e){
e.printStackTrace();
}
}
Возможно в цикле загвоздка, всё таки не с консоли чтение идёт.
Попробуй 22 строчку убрать.
А цикл такой
for (Object o : br.lines().toArray()) {
lines.add(o.toString());
}
Можно не париться по путям файлов. Просто копияя пути задачи и проходит.
Вот так например
public static String FILE_NAME = "package com.javarush.task.task15.task1525;"