在我的最新项目中,我使用一个名为“ atestfile.txt ” 的.txt文件,该文件位于我创建的项目/ raw文件夹中:
这是其内容:
现在使用这几行简单的代码。
我希望我的应用程序将文本文件中的单词逐行插入我的ArrayList 中,如this questions awesome first answer.
所示但是,不会出现Toast,更糟糕的是,我将收到我使用的 test.get(3); 行的IndexOutOfBoundsException ,应用程序崩溃。
我整天都在尝试消除此错误,但尚未成功。 因此,由于周围有很多聪明的人,而且我想学习一些有关此问题的信息,所以我认为在将计算机扔到窗外之前,我会先向你们寻求帮助。
我将为您提供我的错误消息,复制和可粘贴的代码以及我的数据包结构,以在此问题上提供更多帮助。
package com.niklas.cp.citypopulation;
final ArrayList<String> test = new ArrayList<String>();
try {
Scanner scanner = new Scanner(new File("android.resource:// com.niklas.cp.citypopulation/raw/atestfile.txt"));
while(scanner.hasNextLine()){
makeToast(scanner.nextLine(),1);
test.add(scanner.nextLine());
}
scanner.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
}
String abc = test.get(3);
tv_highscore.setText(abc);
答案 0 :(得分:2)
您在每个循环中两次调用scanner.nextLine(),但仅将第二行添加到test
,因此test
只有三行。
你必须这样写
while(scanner.hasNextLine()) {
String s = scanner.nextLine();
makeToast(s,1);
test.add(s);
}
如果抛出FileNotFoundException异常,请尝试以下操作
InputStream file = getResources().openRawResource(R.raw.atestfile);
Scanner scanner = new Scanner(file);