При попытке чтения из файла выбрасывает ошибку
Exception in thread "main" java.lang.NumberFormatException: For input string: "PK��P��y˜�Index/Document.iwa��Hh�N�""
at java.base/java.lang.NumberFormatException.forInputString(NumberFormatException.java:68)
at java.base/java.lang.Integer.parseInt(Integer.java:658)
at java.base/java.lang.Integer.parseInt(Integer.java:776)
at com.javarush.task.task13.task1326.Solution.main(Solution.java:33)
Из неё я понимаю что что-то не так с преобразованием входного потока в цифры, но не могу придумать или найти как это сделать по другому?
Считывать char и как то трансформировать его? или с байтами?
package com.javarush.task.task13.task1326;
/*
Сортировка четных чисел из файла
1. Ввести имя файла с консоли.
2. Прочитать из него набор чисел.
3. Вывести на консоль только четные, отсортированные по возрастанию.
Требования:
1. Программа должна считывать данные с консоли.
2. Программа должна создавать FileInputStream для введенной с консоли строки.
3. Программа должна выводить данные на экран.
4. Программа должна вывести на экран все четные числа считанные из файла отсортированные по возрастанию.
5. Программа должна закрывать поток чтения из файла(FileInputStream).
*/
import java.io.*;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
public class Solution {
public static void main(String[] args) throws Exception {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
String fileName = reader.readLine();
List<Integer> list = new ArrayList<>();
InputStream inputStream = new FileInputStream(fileName);
BufferedReader fileReader = new BufferedReader(new InputStreamReader(inputStream));
while (fileReader.ready()) {
Integer scr = Integer.parseInt(fileReader.readLine());
if (scr%2 ==0) {
list.add(scr);
}
}
inputStream.close();
Collections.sort(list);
for (Integer integer : list) {
System.out.print(integer);
}
}
}