Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /* Нити и байты
- Читайте с консоли имена файлов, пока не будет введено слово "exit"
- Передайте имя файла в нить ReadThread
- Нить ReadThread должна найти байт, который встречается в файле максимальное число раз, и добавить его в словарь resultMap,
- где параметр String - это имя файла, параметр Integer - это искомый байт.
- Закрыть потоки. Не использовать try-with-resources
- */
- public class Solution {
- public static Map<String, Integer> resultMap = new HashMap<String, Integer>();
- public static void main(String[] args) throws IOException {
- BufferedReader r = new BufferedReader(new InputStreamReader(System.in));
- String tmp = null;
- while (!(tmp = r.readLine()).equals("exit")){
- new ReadThread(tmp);
- }
- for (Map.Entry<String,Integer> set : resultMap.entrySet()){
- System.out.println(set.getKey() +" "+ set.getValue());
- }
- r.close();
- }
- public static class ReadThread extends Thread {
- public ReadThread(String fileName) {
- super(fileName);
- this.start();
- }
- @Override
- public void run()
- {
- List<Integer> bytes = new ArrayList<>();
- int count = 0;
- int maxByte = 0;
- try{
- FileInputStream read = new FileInputStream(super.getName());
- while (read.available()>0){
- bytes.add(read.read());
- }
- read.close();
- for (Integer a: bytes){
- int tmpcount = 0;
- for (Integer b: bytes){
- if (a==b) tmpcount++;
- }
- if (count<tmpcount) {
- count=tmpcount;
- maxByte = a;
- }
- resultMap.put(super.getName(),maxByte);
- }
- }
- catch (IOException e){}
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement