Данный код не проходит проверку по условию: "нити должны найти максимально встречающийся байт в своем файле и добавить его в словарь resultMap."
Не хочу решать через мапу, хочу довести до ума этот код (если валидатор примет!).
package com.javarush.task.task18.task1823;
import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.HashMap;
import java.util.Map;
import java.util.TreeMap;
/*
Нити и байты
*/
public class Solution {
public static Map<String, Integer> resultMap = new HashMap<String, Integer>();
public static void main(String[] args) {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
String name;
try {
while (!(name = reader.readLine()).equals("exit")) {
ReadThread thread = new ReadThread(name);
thread.start();
}
reader.close();
} catch (IOException e) {
e.printStackTrace();
}
}
public static class ReadThread extends Thread {
private String fileName;
public ReadThread(String fileName) {
super(fileName);
this.fileName = fileName;
}
@Override
public void run() {
int[] array = null;
FileInputStream input;
try {
input = new FileInputStream(fileName);
while (input.available() > 0) {
array = new int[256];
int i = input.read();
array[i]++;
}
int max = array[0];
int count = 0;
for (int i = 1; i <array.length ; i++) {
if (array[i] > max){
max = array[i];
count = i;
synchronized (Solution.class){
resultMap.put(this.fileName,count);
}
}
}
input.close();
}catch (IOException e) {
e.printStackTrace();
}
}
}
}