• ,

level18.lesson10.home08

import java.io.*;
import java.util.HashMap;
import java.util.Map;

/* Нити и байты
Читайте с консоли имена файлов, пока не будет введено слово "exit"
Передайте имя файла в нить ReadThread
Нить ReadThread должна найти байт, который встречается в файле максимальное число раз, и добавить его в словарь resultMap,
где параметр String - это имя файла, параметр Integer - это искомый байт.
Закрыть потоки. Не использовать try-with-resources
*/

public class Solution {
    public static Map<String, Integer> resultMap = new HashMap<String, Integer>();


    public static void main(String[] args) throws IOException, InterruptedException
    {

        BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));

            String filename = reader.readLine();
            while (!filename.equals("exit"))
            {
                new ReadThread(filename).start();
                filename = reader.readLine();
            }

      /*  for (Map.Entry<String, Integer> pair : resultMap.entrySet())
        {
            System.out.println(pair.getKey() + " " + pair.getValue());
        }
    */


        reader.close();
    }

    public static class ReadThread extends Thread {

        String filename;
        public ReadThread(String fileName)
        {
            this.filename = fileName;

        }

        public void run()
        {
            try
            {
                Map <Integer, Integer> map = new HashMap<>();

                FileInputStream is = new FileInputStream(filename);

                int data = is.read();


                if (map.containsKey(data))
                {
                    map.put(data, map.get(data) + 1);
                }
                else
                {
                    map.put(data, 1);
                }
                
                is.close();

                int max = 0;

                for (Map.Entry<Integer, Integer> pair : map.entrySet())
                {

                    int key = pair.getKey();
                    int value = pair.getValue();

                    if (max < value)
                    {
                        max = value;
                    }

                    synchronized (resultMap)
                    {
                        resultMap.put(this.filename, key);
                    }

                }
            }
            catch (IOException e)
            {

            }
        }
    }
}

Друзья, помогите с задачей, выводит верно, валидатор не проходит. Потоки закрыты, hashmap синхронизирован, start вынес в main, но что-то неправильно, не могу понять что.