Я бы настоятельно рекомендовал бы использовать InputStreamReader
вместо FileReader
, но явно указав кодировку символов.Это действительно самое большое преимущество использования InputStreamReader
(а отсутствие возможности указать кодировку для FileReader
является главной дырой в API, IMO).
Я бы также удалил "слой"используя DataInputStream
- просто передайте FileInputStream
в конструктор InputStreamReader
.
До Java 8
В качестве альтернативы рассмотрите возможность использования некоторых из множества удобных методов в Гуава , которая может сделать такие вещи намного проще.Например:
File file = new File("C:\\testnew\\out.text");
List<String> lines = Files.readLines(file, Charsets.UTF_8));
Из Java 8
Java 8 представила кучу новых классов и методов в java.nio.files
, многие из которых по умолчанию (разумно) имеют значениеUTF-8:
Path path = Paths.get("C:\\testnew\\out.text");
List<String> lines = Files.readAllLines(path);