可能重複使用掃描儀:
Validating input using java.util.Scanner當一個文件以一個空行開始
我在一個目錄下一堆文件的閱讀。我想用掃描儀來檢查大部分文件,但是我一直在收到NoSuchElementExceptions,我很積極,因爲有些文件是以空行開始的。
如何繞過這個掃描儀,這樣我可以讀取文件的其餘部分沒有任何問題?
可能重複使用掃描儀:
Validating input using java.util.Scanner當一個文件以一個空行開始
我在一個目錄下一堆文件的閱讀。我想用掃描儀來檢查大部分文件,但是我一直在收到NoSuchElementExceptions,我很積極,因爲有些文件是以空行開始的。
如何繞過這個掃描儀,這樣我可以讀取文件的其餘部分沒有任何問題?
如果你確定,第一行是空白的,那麼你可以簡單地使用:
String line = scanner.nextLine();
跳過第一道防線。如果這僅發生在一些文件,那麼你可以使用檢查內容:
line.isEmpty()
即使使用掃描儀應該工作讀取文件最簡單的方法,這樣的事情將正常工作:
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();
}
}
即使第一行爲空,這也不會有任何問題
您確定這是空白行嗎?
我剛剛測試了一個非常小的Java程序,我認爲你不檢查是否有下一行。
嘗試類似的hasNext()方法:
while (scan.hasNext()) {
//Your code
}
這將檢查,看看是否有nextLine文件中它試圖解析它之前。
我做到了。我做了.hasNext()和.hasNextLine()的打印。 都出來了假。但是當我看着這個文件時,那裏有東西。 – marcinx27
顯示一些代碼.. –