Есть ощущение, что на правильном пути, но что-то упускаю.
Не понимаю, как поместить значения в Map, не прописывая напрямую ее имя в методе run().
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.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 reader = new BufferedReader(new InputStreamReader(System.in));
List<ReadThread> fileThreads = new ArrayList<>();
String currentLine;
while (!(currentLine = reader.readLine()).equals("exit")){
fileThreads.add(new ReadThread(currentLine));
}
for (ReadThread thread : fileThreads){
thread.start();
}
reader.close();
}
public static class ReadThread extends Thread {
private String fileName;
public ReadThread(String fileName) {
this.fileName = fileName;//implement constructor body
}
public void run(){
try(FileInputStream inputStream = new FileInputStream(fileName)){
int[] count = new int[256];
while (inputStream.available() != -1){
count[inputStream.read()]++;
}
int foundI = 0;
int max = count[0];
for (int i = 1; i < count.length; i++) {
if(count[i] > max){
foundI = i;
max = count[i];
} else if(count[i] == max){
count[i] = 0;
}
}
putToMap(resultMap, fileName, foundI);
inputStream.close();
} catch(IOException e){
e.printStackTrace();
}
}
public void putToMap(Map<String, Integer> map, String key, int value){
map.put(key, value);
}// implement file reading here - реализуйте чтение из файла тут
}
}