2014-11-01 4 views
1

утра файл чтение XML в список таким образом:Files.readAllLines скачет последняя строка

List<String> file_lines = Files.readAllLines(path); 

Мой файл имеет 317 строк, но в списке появляется 316. Основная проблема заключается в том, что один лат пуст (только каретку return возможно) Как я могу справиться с этим? Мне нужна именно каждая строка файла, потому что вычисляю контрольную сумму crc32 для проверки файлов.

+0

Я думаю, что в этом случае вам не следует использовать режимы ввода текста, а просто читать байты файла напрямую, используя «FileInputStream». – 5gon12eder

ответ

6

Мне нужна именно каждая строка файла, потому что вычисляю контрольную сумму crc32 для проверки файлов.

В этом случае вы читаете его не так. Вы должны прочитать его и контрольную сумму его как байты, а не символы:

  • , чтобы избежать проблем с проблемами текста транскодирования,

  • , чтобы избежать проблем борьбы с последней строкой файла (который может или может не иметь конца строки ...) и

  • , чтобы избежать необходимости иметь дело с вариантами в концевых маркерах ..., которые вы обычно не можете отличить от «строки чтения» или «читать все линии "API.

+0

Спасибо, я попробую это / – Constantine

Смежные вопросы