为了账号安全,请及时绑定邮箱和手机立即绑定

将 .txt 文件逐行读入 ArrayList

将 .txt 文件逐行读入 ArrayList

LEATH 2021-12-01 17:16:38
在我的最新项目中,我使用了一个名为“ atestfile.txt ”的 .txt 文件,该文件位于我创建的项目 /raw 文件夹中:这是它的内容:现在使用这几行简单的代码..我希望我的应用程序将文本文件中的单词逐行插入到我的 ArrayList 中,如这个问题的第一个答案所示。但是,没有面包会出现,甚至更糟的是,我会收到一个IndexOutOfBoundsException异常的test.get(3); 我使用的线路和应用程序崩溃。我一整天都试图摆脱这个错误,但还没有成功。所以因为这里有很多聪明的人,我很想了解这个问题,我想我会在把我的电脑扔出窗外之前先向你们寻求帮助。我将向你们提供我的错误消息、复制和可粘贴代码以及我的数据包结构,以获得有关此问题的更多帮助。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);
查看完整描述

1 回答

?
倚天杖

TA贡献1828条经验 获得超3个赞

您在每个循环中两次调用 scanr.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);


查看完整回答
反对 回复 2021-12-01
  • 1 回答
  • 0 关注
  • 204 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信