Возможно нужно поставить синхронизацию на добавление результата в мапу , но это не точно
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;
while (true) {
filename = reader.readLine();
if (filename.equals("exit")) {
break;
}
new ReadThread(filename).start();
}
reader.close();
}
public static class ReadThread extends Thread {
private String filename;
int count=0;
public ReadThread(String fileName) throws FileNotFoundException, IOException {
this.filename = fileName;
}
public void run () {
FileInputStream bufferedReader = null;
try {
bufferedReader = new FileInputStream(filename);
byte [] bytes = new byte[bufferedReader.available()];
bufferedReader.read(bytes);
// for (int i = 0; i<bytes.length; i++) {
// if (resultMap.containsKey(Byte.toString(bytes[i])))
// resultMap.put(Byte.toString(bytes[i]),resultMap.get(Byte.toString(bytes[i]))+1);
// else resultMap.put(Byte.toString(bytes[i]),count);
//
// }
bufferedReader.close();
for (int i = 0; i <bytes.length; i++) {
if (bytes[i]>count){
count=bytes[i];
}
}
resultMap.put(filename, count);
} catch (IOException e) {
e.printStackTrace();
}
}
}
}