Thanks in advance..
package com.codegym.task.task18.task1823;
import java.io.*;
import java.util.HashMap;
import java.util.Map;
/*
Threads and bytes
*/
public class Solution {
public static final Map<String, Integer> resultMap = new HashMap<>();
public static void main(String[] args) throws IOException {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
String fileName = "";
while (!fileName.equals("exit")) {
fileName = reader.readLine();
new ReadThread(fileName).start();
}
reader.close();
}
public static class ReadThread extends Thread {
private String fileName;
public ReadThread(String fileName) {
this.fileName = fileName;
}
public void run() {
HashMap<Integer, Integer> frequencies = new HashMap<>();
try {
FileInputStream inputStream = new FileInputStream(this.fileName);
while (inputStream.available() > 0) {
int data = inputStream.read();
if (!frequencies.containsKey(data)) frequencies.put(data, 1);
else frequencies.replace(data, frequencies.get(data) + 1);
}
int count = 0;
int mostByte = 0;
for (Map.Entry<Integer, Integer> entry : frequencies.entrySet()) {
if (entry.getValue() > count) mostByte = entry.getKey();
}
synchronized (Solution.resultMap) {
resultMap.put(this.fileName, mostByte);
}
inputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}