2016-09-13 63 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