Я проверил это в Windows, и если исходный файл закодирован в UTF-8, следующий код выдаст желаемый вывод на консоль и в файл, который затем также кодируется в UTF-8, используя из java.nio
:
public static void main(String[] args) {
Path inPath = Paths.get(sourcePath);
Path outPath = Paths.get(targetPath);
try {
List<String> lines = Files.readAllLines(inPath, StandardCharsets.UTF_8);
lines.forEach(line -> {
System.out.println(line);
});
Files.write(outPath, lines, StandardCharsets.UTF_8);
} catch (IOException e) {
e.printStackTrace();
}
}
Обратите внимание, что исходный файл должен быть закодирован в UTF-8, в противном случае это может привести к IOException
, указывающему что-то вроде Input length = 1
. Поиграйте с StandardCharsets
, если он не соответствует вашим требованиям, или убедитесь, что кодировка исходного файла UTF-8 .