Ваша Строка не так хорошо сформирована, как говорилось ранее.
Я думал, что пробел - это новая строка в вашем коде.
Поэтому я изменил ваш сканер на BufferedReader и с этого момента работал с потоками:
private final static String filePath = "D:\\1.txt";
public static void main(String[] args) {
File inputFile = new File(filePath);
ArrayList<Integer> numbers = new ArrayList<>();
try
{
BufferedReader rd = new BufferedReader(new FileReader(inputFile));
Pattern pattern = Pattern.compile("[,\\s]+");
rd.lines().forEach(x-> Arrays.asList(pattern.split(x)).forEach(y->numbers.add(Integer.parseInt(y))));
rd.close();
System.out.println(numbers);
} catch (IOException e) {
e.printStackTrace();
}
}
Довольно аккуратно эта строка, не так ли?
PS: я добавил ответ раньше, поэтому, если ваш пробел является пробелом, он все равно будет правильно компилировать числа