MalformedInputException: длина ввода = 1 при повторном запуске

SlaxX спросил: 27 ноября 2017 в 05:41 в: java

Запуск файла с этим кодом в первый раз работает нормально, но при втором запуске (в том же файле) Files.readAllLines вызывает указанное исключение.

Весь код do is (для каждого файла, но в данном случае это всего одна) получить все строки из файла, удалить его, а затем снова заполнить его тем же содержимым.

for (File file : content) {
    List<String> fillLines = new ArrayList<>();
    try {
        fillLines = Files.readAllLines(file.toPath());
    } catch (IOException e) {
        e.printStackTrace();
    }    if (fillLines.size() > 0) {
        file.delete();
        FileWriter fileWriter = new FileWriter(file, false);        for (String line : fillLines) {
            fileWriter.write(line);
            if (fillLines.indexOf(line) < fillLines.size() - 1)
                fileWriter.append(System.lineSeparator());
        }
        fileWriter.close();
    }
}

Любые идеи ? Возможно, из-за fileWriter.append(System.lineSeparator());?

Все остальные спрашивающие терпели неудачу в первый раз из-за того, что читали его с неверной кодировкой. Но так как я могу запустить его один раз, я не читаю, а пишу что-то неправильно, поэтому изменение кодировки кажется обходным путем, которого можно избежать.

Stacktrace:

java.nio.charset.MalformedInputException: Input length = 1
    at java.nio.charset.CoderResult.throwException(Unknown Source)
    at sun.nio.cs.StreamDecoder.implRead(Unknown Source)
    at sun.nio.cs.StreamDecoder.read(Unknown Source)
    at java.io.InputStreamReader.read(Unknown Source)
    at java.io.BufferedReader.fill(Unknown Source)
    at java.io.BufferedReader.readLine(Unknown Source)
    at java.io.BufferedReader.readLine(Unknown Source)
    at java.nio.file.Files.readAllLines(Unknown Source)
    at java.nio.file.Files.readAllLines(Unknown Source)

все, что находится ниже, указывает на

    fillLines = Files.readAllLines(file.toPath());


0 ответов