Задачу решил после многократной компиляции на тестовом файле Но не могу понять зачем в этой строке кода мы используем оператор приведения типа к типу char.
if(String.valueOf((char)reader.read()).matches("[a-zA-z]"))
Только с его использованием выдается верное количество английских букв из тестового файла, без него выдаваемое количество - 0. Подскажите пожалуйста, зачем здесь использовать оператор приведения к типу char, ведь метод read() и так считывает символы??