Затем нити должны найти максимально встречающийся байт в своем файле и добавить его в словарь resultMap.
Подумал что дело в ключевом слове "затем" и одновременном запуске нитей и вводе имён фалов, допилил так чтоб сначала вводились все файлы, затем exit, и только потом запустились нити и начали считать числа, хрен бы там)
package com.javarush.task.task18.task1823;
import java.io.*;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/*
Нити и байты
*/
public class Solution {
public static Map<String, Integer> resultMap = new HashMap<String, Integer>();
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String fileName;
List<String> list = new ArrayList<String>();
while (!(fileName = br.readLine()).equals("exit")){
list.add(fileName);
}
for(int i = 0; i < list.size(); i++) {
ReadThread thread = new ReadThread(list.get(i));
thread.start();
}
}
public static class ReadThread extends Thread {
public ReadThread(String fileName) {
super(fileName);
}
@Override
public void run() {
try {
FileInputStream fis = new FileInputStream(super.getName());
byte[] bytes = new byte[fis.available()];
fis.read(bytes,0,fis.available());
fis.close();
int maxByte = 0;
for(int j = 0; j < bytes.length; j++){
int count = 0;
for(int i = 0; i < bytes.length; i++){
if (bytes[i]==bytes[j]){
count++;
}
}
if (count > maxByte) {maxByte = count;}
}
resultMap.put(super.getName(), maxByte);
//System.out.println(resultMap);
} catch(IOException e){}
}
}
}