В импорте указан сканер,(запомним это). Если читать построчно через буферы + расположение цифр как задано тут "столбиком", то код ниже отработает хорошо
String a;
while ((a = bufferedReader.readLine()) != null){
int s = Integer.parseInt(a);
if (s % 2 == 0) {
list.add(s);
}
}
Если цифры расположить в одну строчку в файле, то выскочит это - Exception in thread "main" java.lang.NumberFormatException: For input string: "5 8 -2 11 3 -5 2 10"
Вспоминаем про импорт сканера в задачи, делаем ("прошло часа два или три...) и замечаем что код отрабатывает столбиком, строкой и возможно через ещё что-то.
Сможет кто решить эту задачу без сканера с такой (5 8 -2 11 3 -5 2 10) строкой? никак не могу понять как сканер смог различить "минус"\"пробел "\1 от 11\ что минус именно к 2 и 5, а не просто символ..package com.javarush.task.task13.task1326;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Scanner;
import java.io.FileInputStream;
/*
Сортировка четных чисел из файла
*/
public class Solution {
public static void main(String[] args) throws Exception {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
String inputFileName = reader.readLine();
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(new FileInputStream(inputFileName)));
List<Integer> list = new ArrayList<>();
String a;
while ((a = bufferedReader.readLine()) != null){
int s = Integer.parseInt(a);
if (s % 2 == 0) {
list.add(s);
}
}
bufferedReader.close();
Collections.sort(list);
for (Integer value : list) {
System.out.println(value);
}// напишите тут ваш код
}
}