Ничего не пойму. Разве в строке 23 я не создаю нити?
А в 56 не кладу максимально встречающийся байт?
package com.javarush.task.task18.task1823;
import java.io.*;
import java.util.HashMap;
import java.util.Map;
/*
Нити и байты
*/
public class Solution {
public volatile static Map<String, Integer> resultMap = new HashMap<String, Integer>();
public static void main(String[] args) throws IOException {
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(System.in));
while (true) {
String fileName = bufferedReader.readLine();
if (fileName.equals("exit")){
bufferedReader.close();
break;
}
ReadThread radThread = new ReadThread(fileName);
}
}
public static class ReadThread extends Thread {
private FileInputStream inputStream;
private String fileName;
public ReadThread(String fileName) throws FileNotFoundException {
this.fileName = fileName;
inputStream = new FileInputStream(this.fileName);
start();
}
@Override
public void run() {
Map<Integer,Integer> map = new HashMap<>();
try {
while (this.inputStream.available() > 0) {
int p = inputStream.read();
if (map.containsKey(p)) {
map.put(p, map.get(p) + 1);
} else
map.put(p, 1);
}
inputStream.close();
int max = Integer.MIN_VALUE;
for (Map.Entry pair: map.entrySet()) {
if (max < (int) pair.getValue()){
max = (int) pair.getValue();
}
}
for (Map.Entry pair: map.entrySet()) {
if (max == (int) pair.getValue());
resultMap.put(this.fileName, (Integer) pair.getKey());
}
}
catch (IOException e){
System.out.println(e);
}
}
}
}