Посчитать частоту встречания каждого символа. Отсортировать результат по возрастанию кода ASCII (почитать в инете). Пример: ‘,’=44, ‘s’=115, ‘t’=116. Вывести на консоль отсортированный результат: [символ1] частота1 [символ2] частота2 Закрыть потоки. Пример вывода: , 19 - 7 f 361 Требования: 1. Считывать с консоли ничего не нужно. 2. Создай поток для чтения из файла, который приходит первым параметром в main. 3. В файле необходимо посчитать частоту встречания каждого символа и вывести результат. 4. Выведенный в консоль результат должен быть отсортирован по возрастанию кода ASCII. 5. Поток для чтения из файла должен быть закрыт.
public static void main(String[] args) throws IOException {
        FileInputStream inputStream = new FileInputStream(args[0]);
        //создаю map для отсортированного списка по ключу (байту)
        TreeMap<Integer,Integer> map = new TreeMap<>();

        while (inputStream.available() > 0) {
            int data = inputStream.read();

            if (map.containsKey(data)){ //если  байт есть в карте
                for (Map.Entry<Integer, Integer> me: map.entrySet()) { //ищу ключ
                    if (me.getKey().equals(data))
                        me.setValue(me.getValue()+1); //нахожу и увеличиваю значение Value
                }
            } else
                map.put(data, 1); //если ключа нет добавляю в карту и ставлю значение 1
        }
        inputStream.close();

        for (Map.Entry<Integer,Integer> go: map.entrySet()) {
            System.out.println(go.getKey().toString() + " " + go.getValue()); //преобразую байт в строку и вывожу результат
        }
    }
По моему самое логичное решение, но не могу понять где я не прав.