FileInputStream fileInputStream = new FileInputStream(args[0]);

        ArrayList<Character> list = new ArrayList<>();
        Map<Character, Integer> map = new HashMap<>();

        ArrayList<Character> alphaBet = new ArrayList<>();
        for (int i = 0; i <= 127; i++) {
            alphaBet.add((char) i);
        }

        while (fileInputStream.available() > 0) {
            list.add((char) fileInputStream.read());
        }

        Collections.sort(alphaBet);

        for (int i = 0; i < alphaBet.size(); i++) {
            int count = Collections.frequency(list, alphaBet.get(i));
            map.put(alphaBet.get(i), count);
        }

        for (Map.Entry pair : map.entrySet()) {
            System.out.println(pair.getKey() + " " + pair.getValue());
        }

        fileInputStream.close();