Во-первых, InputStreamReader
может обрабатывать все входные потоки, а не только файлы.Другими примерами являются сетевые подключения, ресурсы classpath и файлы ZIP.
Во-вторых, FileReader
не позволяет вам указать кодировку и вместо этого использует кодировку по умолчанию для платформы, что делает ее практически бесполезной, поскольку ее использование приведет кв поврежденных данных, когда код запускается в системах с различными кодировками платформы по умолчанию.
Короче говоря, забудьте, что FileReader
существует.