Непонятно, что не нравится валидатору? Поток создаю и позже закрываю. Кто-нибудь может помочь?
package com.javarush.task.task18.task1821;
/*
Встречаемость символов
*/
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.util.Map;
import java.util.TreeMap;
public class Solution {
public static void main(String[] args) throws IOException {
if (args.length==0) return;
BufferedReader buf = new BufferedReader(new FileReader(args[0]));
StringBuilder str = new StringBuilder();
String line;
Map<Character, Integer> map = new TreeMap<>();
while ((line=buf.readLine())!=null) {
str.append(line).append('\n');
}
buf.close();
str.deleteCharAt(str.length()-1);
for (Character c: str.toString().toCharArray()) {
map.merge(c, 1, (o,n) -> o+n);
}
map.forEach((k,v)-> System.out.println(k + " " + v));
}
}