Программа работает исправно, но не проходит по 4 пункту- Затем нити должны найти максимально встречающийся байт в своем файле и добавить его в словарь resultMap.
Через Map не хочу решать!
Подскажите что не так
Вот это уже пробовал :
synchronized (Solution.class){
resultMap.put(this.filename,max);}
}
package com.javarush.task.task18.task1823;
import java.io.*;
import java.util.HashMap;
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 reader = new BufferedReader(new InputStreamReader(System.in));
String filename = null;
String exit = "exit";
while (true) {
filename = reader.readLine();
if (filename.equals(exit)){
break;
}
new ReadThread(filename).start();
}
reader.close();
// for (Map.Entry<String,Integer>entry:resultMap.entrySet()){
// System.out.println(entry.getKey() +" "+ entry.getValue());
// }
}
public static class ReadThread extends Thread {
private String filename;
public ReadThread(String fileName) {
//implement constructor body
this.filename = fileName;
}
@Override
public void run() {
try {
FileInputStream stream = new FileInputStream(filename);
int [] arr = new int[256];
while (stream.available() > 0)
arr[stream.read()]++;
stream.close();
int max = 0;
for (int i = 0; i < arr.length; i++) {
int data = arr[i];
if (data>max){
max=data;
}
}
synchronized (Solution.class){
resultMap.put(this.filename,max);}
}
catch (FileNotFoundException e) {
System.out.println("File "+ filename + " not found!");
}
catch (IOException ex){
System.out.println("Read next byte error "+ "File " + filename);
}
}
// implement file reading here - реализуйте чтение из файла тут
}
}