2015-12-16 4 views
0

Я пытаюсь использовать Files.readAllLines для чтения файла и его редактирования.Специальный символ при использовании Files.readAllLines

List<String> l = Files.readAllLines(manejador.getArchivo().toPath(), StandardCharsets.UTF_8); 

Файл содержит список игр и своих игроков:

ID: Fm550.0 
Federico Schmidt 
Iván Petrini 
Germán Gómez 
Tomás Perotti 
ID: VO101000.0 
Alex Morgan 

Итак, я хочу, чтобы проверить каждую позицию в списке, чтобы увидеть, если она равна некоторые ID.

Проблема заключается в том, что, когда я использую Files.readAllLines, я получаю это:

?ID: Fm550.0 
Federico Schmidt 
Iván Petrini 
Germán Gómez 
Tomás Perotti 
ID: VO101000.0 
Alex Morgan 

Как я могу избавиться от этого ? на самом начале?

+0

Этот символ, вероятно, находится в вашем файле - как вы создали файл? – assylias

+3

Возможно, это спецификация. Посмотрите на свой текстовый файл с шестнадцатеричным редактором. –

+2

Файлы UTF-8 * могут * начинаться с спецификации ([Бит заказа байта] (https://en.wikipedia.org/wiki/Byte_order_mark#UTF-8)). Вы должны открыть файл в текстовом редакторе (например, Notepad ++) и сохранить его без спецификации. Из вики: * «Стандарт Unicode ** позволяет ** специфицировать спецификацию в UTF-8, **, но не требует ** или ** рекомендует использовать **. * * – Andreas

ответ

0

Хотя ваш вопрос немного отличается, т. Е. Не является дубликатом Reading UTF-8 - BOM marker, поскольку, похоже, вы, возможно, не знали вопроса о спецификациях в UTF-8, есть ответ на вопрос о спецификации в файлах UTF-8 в Java в приведенной выше ссылке.

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