После нескольких часов мучений родил это, голова уже не работает... Менял логику, менял способы закрытия потока, ничего. Может он один и тот же байт выводит? А как проверить?
package com.javarush.task.task18.task1804;
import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.InputStreamReader;
import java.util.*;
/*
Самые редкие байты
*/
public class Solution {
public static void main(String[] args) throws Exception {
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
String fileName=br.readLine();
try (FileInputStream fis =new FileInputStream(fileName)) {
List<Integer> myBytes = new ArrayList<>();
while (fis.available() > 0) {
myBytes.add(fis.read());
}
HashMap<Integer, Integer> count = new HashMap<>();
for (int number : myBytes)
count.put(number, count.getOrDefault(number, 0) + 1);
int min=Integer.MAX_VALUE;
for(int value:count.values()) {
if (value > 0 && value < min) min = value;
System.out.print(min + " ");
}
}
}
}