Не могу понять в чем беда
package com.javarush.task.task18.task1804;
import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.InputStreamReader;
import java.util.*;
/*
Самые редкие байты
Ввести с консоли имя файла.
Найти байт или байты с минимальным количеством повторов.
Вывести их на экран через пробел.
Закрыть поток ввода-вывода.
Требования:
1. Программа должна считывать имя файла с консоли.
2. Для чтения из файла используй поток FileInputStream.
3. В консоль через пробел должны выводиться все байты из файла с минимальным количеством повторов.
4. Данные в консоль должны выводится в одну строку.
5. Поток чтения из файла должен быть закрыт.
*/
public class Solution {
public static void main(String[] args) throws Exception {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
String s = reader.readLine();
FileInputStream fileInputStream = new FileInputStream(s);
List<Integer> list = new ArrayList<>();
Map<Integer, Integer> map = new HashMap<>();
while (fileInputStream.available()>0) {
list.add(fileInputStream.read());
}
for (int i = 0; i < list.size(); i++) {
map.put(list.get(i), i);
}
int min = 1000;
int key = 0;
int value = 0;
for(Map.Entry<Integer, Integer> la : map.entrySet()) {
if(la.getValue()<min) {
key = la.getKey();
value = la.getValue();
}
}
for (int i = 0; i < value; i++) {
System.out.print(key + " ");
}
reader.close();
fileInputStream.close();
}
}