У меня есть несколько файлов (на самом деле они также являются исходными файлами java, сохраненными в Eclipse на Ubuntu), которые мне нужно читать и обрабатывать по строкам. Я заметил, что я не могу прочитать один из файлов. Код, который я использую, нижеСканер Java hasNextLine возвращает false
try (Scanner scanner = new Scanner(file)) {
while (scanner.hasNextLine()) {
builder.append(scanner.nextLine()).append("\n");
}
} catch (FileNotFoundException ex) {
System.out.println("Error");
}
Я проверял заранее, существует ли файл. И это так. Я могу даже переименовать его. Но я не могу прочитать ни одной строки. hasNextLine просто возвращает false. (Я даже пытаюсь hasNext).
В конце я просматриваю содержимое файла и обнаруживаю, что есть другой вид (который был в разделе комментариев java-файла). Это следующий символ.
¸
Когда я удаляю этот символ, я могу нормально прочитать файл. Однако это неприемлемо. Что я могу сделать, чтобы читать файлы даже с этим символом?
что вы пытаетесь сделать здесь? builder.append (scanner.nextLine()) добавьте ("\ п");. ?? добавив новую строку почему? похоже, что вы добавляете еще одну «новую строку». одна пустая строка ??? –
Чтобы быть ясным, характерный период? Также как вы извлекаете файл. –
это расширенный символ ascii (cedilla: U + 00B8) и не должен давать никаких проблем; вы должны проверить (с помощью hexeditor), что такое предыдущий байт; и в любом случае «Сканер сканер = новый сканер (файл,« UTF-8 »)' –