Есть закрытия потока, но его это не устраивает(((
Как можно решить эту проблему?
package com.javarush.task.task18.task1804;
import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
/*
Самые редкие байты
*/
public class Solution {
public static void main(String[] args) throws Exception {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
FileInputStream file = new FileInputStream(reader.readLine());
ArrayList<Integer> array = new ArrayList<>();
HashMap<Integer,Integer> map = new HashMap<>();
ArrayList<Integer> copy = new ArrayList<>();
while (file.available() > 0) {
array.add(file.read());
}
for (int i : array) {
if (map.containsKey(i)) {
map.put(i, map.get(i)+1);
} else {
map.put(i, 1);
}
}
for (HashMap.Entry<Integer, Integer> pair : map.entrySet()) {
copy.add(pair.getValue());
}
int min = copy.get(0);
for (int i = 0; i < copy.size(); i++) {
if (min > copy.get(i)) {
min = copy.get(i);
}
}
for (HashMap.Entry<Integer, Integer> pair : map.entrySet()) {
if (pair.getValue() == min) {
System.out.print(pair.getKey() + " ");
}
}
reader.close();
file.close();
}
}