public class Solution {
public static void main(String[] args) throws Exception {
// напишите тут ваш код
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
//String fileName = "C:/1/" + reader.readLine() + ".txt";
FileInputStream fileInputStream = new FileInputStream(reader.readLine());
InputStreamReader inputStreamReader = new InputStreamReader(fileInputStream);
BufferedReader bufferedReader = new BufferedReader(inputStreamReader);
ArrayList<String> strings = new ArrayList<>();
String s;
while ((s = bufferedReader.readLine()) != null) {
strings.add(s);
}
ArrayList<Integer> integers = new ArrayList<>();
for (int i = 0; i < strings.size(); i++) {
try {
if (Integer.parseInt(strings.get(i)) % 2 == 0) {
integers.add(Integer.parseInt(strings.get(i)));
}
} catch (Exception e) {
}
}
Integer[] ints = integers.toArray(new Integer[integers.size()]);
Arrays.sort(ints);
for (Integer a : ints
) {
System.out.println(a);
}
//fileInputStream.close();
inputStreamReader.close();
//bufferedReader.close();
}
}
Не нравится валидатору:
1. Программа должна вывести на экран все четные числа считанные из файла отсортированные по возрастанию.
2. Программа должна выводить данные на экран.
3. Программа должна закрывать поток чтения из файла(FileInputStream).
Помогите увидеть проблему, спасибо.
UPD. Изменил блок с названием файла по совету Александра - две проблемы ушли. Нерешенным остается 3 пункт. Уже пробовал и по одному каждый поток закрывать, и все вместе, что не так?Руслан
13 уровень
Программа работает, но валидатор ругается.
Архивный
Комментарии (4)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Pavlo Plynko Java-разработчик в CodeGym Expert
4 сентября 2017, 11:15
Еще нужно обработать ситуацию когда bufferedReader пустой, т.е. проверять bufferedReader.ready().
0
Александр ХаартExpert
3 сентября 2017, 10:20
Для начала, имя файла с консоли - это полный путь к файлу, а не само имя файла.
Во вторых, не уверен что схавает "левую" сортировку) Вначале обучения нужна своя))
0
Marina
28 сентября 2017, 20:03
Посмотрела в обсуждении задачи, у всех такая же сортировка. Единственное, что на мой взгляд, как то через Владивосток читают данные из файла типа вот так:
try (BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(cnsReader.readLine()))))
Но я искренне не понимаю зачем городить.
Файл ввожу полный адрес, программа компилируется, но традиционно "Файл не найден"
По поводу сортировки самостоятельно несколько уровней назад валидатор упорно не принимал 3 моих сортировки(вплоть до пузырька) и принял решение с arrays.sort()
0
Александр ХаартExpert
28 сентября 2017, 23:35
Сделайте единую конструкцию bufferedReader. + сделать отдельную переменную для имени файла. Ну и закрыть поток считывания с консоли тоже надо...
0