Files.lines(.., StandardCharsets.UTF_8 ) getting MalformedInputException, but bufferedReader.lines() witht line.getBytes("UTF-8")-not

Рейтинг: 0Ответов: 0Опубликовано: 26.01.2023

Читается одни и тот же файл во этим кодом.

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?

Ответы

Ответов пока нет.