2016-09-13 92 views
0

我對Java很新,並試圖掃描.txt文件以從中檢索單個單詞。文本文件掃描儀無法將元素添加到ArrayList

我在哪裏弄錯了,因爲沒有元素被添加到ArrayList?

public class ScanInputFile { 

public static ArrayList<String> list = new ArrayList<String>(); 

public static void importArrayList(String path) throws FileNotFoundException { 
    File textFile = new File(path); 
    Scanner s = new Scanner(textFile); 
    while (s.hasNext()){ 
     list.add(s.next()); 
    } 
    s.close(); 
} 

public static void main(String[] args) throws FileNotFoundException { 
    importArrayList("C:\\MyFirstList.txt"); 
    System.out.println(list.get(0)); 
} 

}

這拋出即使TXT文件包含10個字,每行2個字的IndexOutOfBounds異常。

在遇到FileNotFoundExceptions問題時,我確保path.exists()和path.canRead()返回true。

感謝您的幫助!

+2

你調試過'hasNext()'是否爲'true'至少一次? – Smutje

+0

顯示完整的錯誤 –

+0

是的,我做到了。如下所示,直到替換txt文件,它從未返回true。 – Sp33dyGonzal3s

回答

0

我用你發佈的代碼試過了,它爲我工作 - 你的文件是什麼樣的?我試着用:

噓聲 富 袋鼠 動物園

控制檯打印: 「噓」。

+0

非常感謝您的快速響應。我創建了一個包含您的示例列表的新文檔,並突然它的工作......一定是我的.txt文件的東西...再次感謝! – Sp33dyGonzal3s

0

您的代碼對我來說執行的很好。 '列表'也按照預期填充。只有我所做的改變就是那個文件路徑。你直接放在C:/下,並把它放在一個文件夾下。但這不應該是一個概率。如果你把最後的S.O.P語句放在一個循環中,它會打印所有的。但我沒有像這樣IndexOutOfBoundExpection

+0

非常感謝您的快速響應。我只是將目錄樹放在那裏,因爲目錄樹很深。 我不知道是什麼修復了它,但清除我的舊列表並創建一個新的.txt。解決了這個問題。 – Sp33dyGonzal3s