Кто разбирается, скажите, не работает потому, что я имя файла храню в имени нити, да?
package com.javarush.task.task18.task1823;
import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.InputStreamReader;
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 Exception {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
String fileName = "";
while (!(fileName = reader.readLine()).equals("exit")) {
new ReadThread(fileName);
}
// System.out.println(resultMap);
}
public static class ReadThread extends Thread {
public ReadThread(String fileName) {
//implement constructor body
super(fileName);
start();
}
// implement file reading here - реализуйте чтение из файла тут
@Override
public void run() {
try {
FileInputStream fis = new FileInputStream(getName());
Map<Integer, Integer> result = new HashMap<>();
while (fis.available() > 0) {
int data = fis.read();
Integer count = result.get(data);
if (count == null)
result.put(data, 1);
else
result.put(data, ++count);
}
fis.close();
Integer maxKey = null;
Integer maxValue = null;
for (Map.Entry<Integer,Integer> entry : result.entrySet()) {
int key = entry.getKey();
int value = entry.getValue();
if (maxValue == null || value > maxValue) {
maxKey = key;
maxValue = value;
}
}
resultMap.put(getName(), maxKey);
} catch (Exception e) {
e.printStackTrace();
}
}
}
}