Лучшим вариантом было бы использовать BufferedReader
(для его readLine()
метода), обертывающий InputStreamReader
(для его возможности указать кодировку), обертывающий FileInputStream
(для фактического чтения файла):
BufferedReader br = new BufferedReader(new InputStreamReader(
new FileInputStream(name), encoding));
FileReader
использует кодировку платформы по умолчанию, что, как правило, является плохой идеей, что делает класс в основном ловушкой для разработчиков, которые не знают о потенциальных проблемах.
Если вы просто хотите найти подстроки в строках, String.indexOf()
- самый эффективный способ; лучше использовать регулярные выражения, если вы действительно ищете конкретные шаблоны.