При декодировании в NIO не все символы отображаются корректно
Мне необходимо считать текст из файла и, например, вывести в консоль. Файл в кодировке UTF-8. Вроде бы делаю декодирование как нужно, русские символы отображаются, но не все. Может, нужно как-то на более низком уровне настроить декодирование?
StringBuilder content = new StringBuilder();
try (FileChannel fChan = (FileChannel) Files.newByteChannel(Paths.get("D:/test.txt")) ) {
ByteBuffer byteBuf = ByteBuffer.allocate(16);
Charset charset = Charset.forName("UTF-8");
while(fChan.read(byteBuf) != -1) {
byteBuf.flip();
content.append(new String(byteBuf.array(), charset));
byteBuf.clear();
}
System.out.println(content);
}
Результат:
Здравствуйте, как поживае��е?
Это п��имер текста на русском яз��ке.ом яз�