Files.lines(.., StandardCharsets.UTF_8 ) getting MalformedInputException, but bufferedReader.lines() witht line.getBytes("UTF-8")-not
Читается одни и тот же файл во этим кодом.
String inputFile = options.getRemotePath();
AtomicLong numberLine1 = new AtomicLong();
AtomicReference<String> lastLineRead1 = new AtomicReference<>("");
try (FileReader fileReader = new FileReader(inputFile);
BufferedReader bufferedReader = new BufferedReader(fileReader)) {
Stream<String> lines = bufferedReader.lines();
lines.map(line -> "" + line)
.forEach(line -> {
numberLine1.getAndIncrement();
lastLineRead1.set(line);
byte[] myBytes = line.getBytes(StandardCharsets.UTF_8);
try {
myBytes = line.getBytes("UTF-8");
} catch (UnsupportedEncodingException e) {
LOGGER.error("numberLine:" + numberLine1 + "\nlastLineRead:" + lastLineRead1,e);
}
});
}
LOGGER.error("numberLine:" + numberLine1 + "\nlastLineRead:" + lastLineRead1);
я не получаю ни каких сообщений об ощибке. Т.е. все строки в UTF_8
Path pathFaDetailPath = Paths.get(inputFile);
AtomicLong numberLine = new AtomicLong();
AtomicReference<String> lastLineRead = new AtomicReference<>("");
try (Stream<String> lines = Files.lines(pathFaDetailPath, StandardCharsets.UTF_8)) {
lines.map(line -> "" + line)
.forEach(line -> {
numberLine.getAndIncrement();
lastLineRead.set(line);
});
} catch (UncheckedIOException e) {
LOGGER.error("numberLine:" + numberLine + "\nlastLineRead:" + lastLineRead,e);
}
читая во этим кодом файл, получаю сообщние об ошибке java.io.UncheckedIOException: java.nio.charset.MalformedInputException: Input length = 1 at java.io.BufferedReader$1.hasNext(BufferedReader.java:574)
Где проблема bufferedReader.lines() или Files.lines?
Источник: Stack Overflow на русском