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