В коде появилось много воды с начала моих попыток, но результат по прежнему не принимает. Где ошибка?
package com.javarush.task.task18.task1823;
import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;
import java.util.TreeMap;
/*
Нити и байты
*/
/*
D:\Dropbox\IntelliJ IDEA\1.txt
D:\Dropbox\IntelliJ IDEA\2.txt
D:\Dropbox\IntelliJ IDEA\3.txt
D:\Dropbox\IntelliJ IDEA\4.txt
D:\Dropbox\IntelliJ IDEA\5.txt
D:\Dropbox\IntelliJ IDEA\6.txt
D:\Dropbox\IntelliJ IDEA\7.txt
exit
*/
public class Solution {
public static HashMap<String, Integer> resultMap = new HashMap<String, Integer>();
public static void main(String[] args) throws Exception {
BufferedReader bufname = new BufferedReader(new InputStreamReader(System.in));
String fileName;
ArrayList<ReadThread> list = new ArrayList<>();
while (!(fileName = bufname.readLine()).equals("exit")) {
list.add(0, new ReadThread(fileName));
list.get(0).start();
}
int threadDead = 0;
while(threadDead != list.size()){
for(Thread thread : list){
if (!thread.isAlive()) threadDead++;
}
if (threadDead != list.size())threadDead = 0;
}
bufname.close();
/*
for (Map.Entry<String, Integer> entry : resultMap.entrySet()) {
System.out.println(entry.getKey() + " => " + entry.getValue());
}
*/
}
public static class ReadThread extends Thread {
FileInputStream input;
TreeMap<Integer, Integer> maxMap = new TreeMap<>();
String filename;
public ReadThread(String fileName) throws Exception {
input = new FileInputStream(fileName);
this.filename = fileName;
}
@Override
public void run() {
try {
while (input.available() > 0) {
Integer symb = input.read();
//Integer symb = input.read();
if (maxMap.containsKey(symb)) {
maxMap.put(symb, maxMap.get(symb) + 1);
} else {
maxMap.put(symb, 1);
}
}
Integer maxValue = maxMap.get(maxMap.firstKey());
Integer maxKey = maxMap.firstKey();
for (Map.Entry<Integer, Integer> entry : maxMap.entrySet()) {
int value = entry.getValue();
int key = entry.getKey();
if (value > maxValue) {
maxValue = value;
maxKey = key;
}
}
resultMap.put(filename, maxKey);
input.close();
} catch (Exception e) {
}
}
}
}