2015-12-16 85 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 

?我怎樣才能在beggining擺脫?的?

+0

該字符可能在您的文件中 - 您是如何創建該文件的? – assylias

+3

也許這是一個BOM。用十六進制編輯器查看您的文本文件。 –

+2

UTF-8文件*可能*以BOM([字節順序標記](https://en.wikipedia.org/wiki/Byte_order_mark#UTF-8))開頭。您應該在文本編輯器(例如Notepad ++)中打開該文件,並在沒有BOM的情況下進行保存。來自維基:*「Unicode標準**允許使用UTF-8的** BOM,但不要求**或推薦使用**。」* – Andreas

回答

0

雖然你的問題略有不同,即,不是的Reading UTF-8 - BOM marker重複的,因爲它看起來你可能不知道BOM的UTF-8格式的問題上,沒有與BOM的UTF-8文件處理Java中的答案在上面的鏈接中。