我有一堆.txt文件我正在嘗試閱讀,但對於其中許多人來說他們不會閱讀。那些不會讀取的文字看起來在文本之前以空行開始。例如下面拋出一個NoSuchElementException:掃描儀無法讀取文本文件
public static void main(String[] args) throws FileNotFoundException{
Scanner input = new Scanner(new File("documentSets/med_doc_set/bmu409.shtml.txt"));
System.out.println(input.next());
}
其中被讀取的文本文件,開始一個空行,然後一些文本。我也嘗試過使用input.skip(「[\\ s] *」)來跳過任何前導空白,但它會拋出相同的錯誤。有沒有辦法解決這個問題?
編輯: 該file託管在谷歌文檔。如果您下載並在文本編輯器中查看,您可以看到它所在的空行。
「 摘要 工作壓力可以被定義爲有害的......」當我複製並粘貼在評論欄中它顯示在下一行空行,然後是「抽象」,那麼長行。格式和空行會丟失,但它會發布雖然.. – user1470948
與掃描儀輸入的默認分隔符,您的代碼應該打印該文件的第一個單詞,即使開始時存在空行(\ n)。當您調用下一個方法時,它會自動搜索將分隔符留在一邊的第一個有效令牌。 你最好把文件內容放在這裏,而不是作爲評論,但編輯你的問題發佈。 –
除了其他建議,'掃描儀'隱藏I/O錯誤,你必須[檢查這些](http://docs.oracle.com/javase/7/docs/api/java/util/Scanner.html#ioException %28%29)。如果文本文件中存在編碼錯誤,或者您嘗試使用錯誤的編碼讀取文件,就會發生這種情況。 – McDowell