Ваша программа правильно считает прописные и строчные буквы.Вы допустили ошибку при сохранении вывода в файл:
Вы пытаетесь сохранить прописные буквы как строчные.
ps.println("Number of **lower case** letters is " + **uppercase**);
ps.println("Number of **upper case** letters is " + **lowercase**);
Решение состоит в замене переменных:
ps.println("Number of lower case letters is " + lowercase);
ps.println("Number of upper case letters is " + uppercase);
Что важно, вы читаете только одну строку из файла, поэтому ваша программа будет считать символы только в первой строке.
Если вы хотите считать каждую строку, вам нужно читать строки в цикле, а затем считать символы.