Можливі дублікати:
Перевірка даних за допомогою java.util.Scanner
Я читаю в купі файлів у каталозі. Я хочу використовувати сканер для перевірки більшості з них, але я продовжую отримувати NoSuchElementExceptions, і я впевнений, що деякі файли починаються з порожнього рядка.
Як мені обійти це сканером, щоб я міг прочитати решту файлів без проблем?
Відповіді:
0 для відповіді № 1Якщо ви впевнені, що перший рядок порожній, ви можете просто скористатися:
String line = scanner.nextLine();
пропустити перший рядок. Якщо це відбувається лише в дещо файли, то ви можете перевірити вміст, використовуючи:
line.isEmpty()
0 для відповіді № 2
Ви впевнені, що це порожній рядок, який викликає у вас проблему?
Я щойно перевірив це на дійсно невеликій програмі Java, і я думаю, ви "не перевіряєте, чи є у неї наступний рядок.
Спробуйте щось на зразок методу hasNext ():
while (scan.hasNext()) {
//Your code
}
Це перевірить, чи є у файлі nextLine перед тим, як він спробує розібрати його.
0 для відповіді № 3
Навіть найпростіший спосіб читання файлу за допомогою Scanner повинен працювати, щось подібне буде добре працювати:
public void getFile(File file) {
Scanner sc = null;
try {
sc = new Scanner(file);
if(sc.hasNext())
System.out.println(sc.next());
} catch (FileNotFoundException e) {
e.printStackTrace();
} finally {
if(sc!=null) sc.close();
}
}
Це не матиме жодних проблем, навіть якщо перший рядок порожній