猿问

将 .txt 文件逐行读入 ArrayList

在我的最新项目中,我使用了一个名为“ atestfile.txt ”的 .txt 文件,该文件位于我创建的项目 /raw 文件夹中:

这是它的内容:

http://img1.mukewang.com/61a73d9500018a4f03090308.jpg

现在使用这几行简单的代码..

http://img.mukewang.com/61a73d9f0001f30513060476.jpg

我希望我的应用程序将文本文件中的单词逐行插入到我的 ArrayList 中,如这个问题的第一个答案所示。

但是,没有面包会出现,甚至更糟的是,我会收到一个IndexOutOfBoundsException异常test.get(3); 我使用的线路和应用程序崩溃。

我一整天都试图摆脱这个错误,但还没有成功。所以因为这里有很多聪明的人,我很想了解这个问题,我想我会在把我的电脑扔出窗外之前先向你们寻求帮助。

我将向你们提供我的错误消息、复制和可粘贴代码以及我的数据包结构,以获得有关此问题的更多帮助。

package com.niklas.cp.citypopulation;

http://img2.mukewang.com/61a73dae00016f4917560388.jpg

 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);


LEATH
浏览 213回答 1
1回答

倚天杖

您在每个循环中两次调用 scanr.nextLine() ,但只将第二行添加到test,因此test只有三行。你必须这样写while(scanner.hasNextLine()) {&nbsp; &nbsp;String s = scanner.nextLine();&nbsp; &nbsp;makeToast(s,1);&nbsp; &nbsp;test.add(s);}如果它抛出 FileNotFoundException 尝试以下InputStream file = getResources().openRawResource(R.raw.atestfile);Scanner scanner = new Scanner(file);
随时随地看视频慕课网APP

相关分类

Java
我要回答