Android:扫描器从 csv 读取下一行并写入字符串

Android: Scanner read next line from csv and write to string

我很困惑。 这是我的 csv 文件

monday;;test;;;;;;;;;;;;;;;;;;;;;;;;test;;
tuesday;;test2;;;;;;;;;;;;;;;;;;;;;;;;test2;;

我需要读取此文件中存在的所有行并将它们写入单独的字符串中。不幸的是它只读取最后一行。

这是我的代码:

String filename = String.valueOf(RecyclerViewSampleActivity.itemTexte.get(weekID));
    Scanner read = null;
    try {
        read = new Scanner(new File(Environment.getExternalStorageDirectory() + File.separator + "/Test/Test2" + File.separator + filename));

    read.useDelimiter(";;");
    String start, text1, text2, text3, text4, text5, text6 ,text7;

    while (read.hasNext())
    {
        start = read.next();
        text1 = read.next();
        text2 = read.next();
        text3 = read.next();
        text4 = read.next();
        text5 = read.next();
        text6 = read.next();
        text7 = read.next();
        mondayText1.setText(text1.toString());
        mondayText2.setText(text2.toString());
        mondayText3.setText(text3.toString());
        mondayText4.setText(text4.toString());
        mondayText5.setText(text5.toString());
        mondayText6.setText(text6.toString());
        mondayText7.setText(text7.toString());
        if (!read.hasNext())
        {
            if (read.hasNextLine())
            {
                read.nextLine();

                tuesdayText1.setText(text1.toString());
                tuesdayText2.setText(text2.toString());
                tuesdayText3.setText(text3.toString());
                tuesdayText4.setText(text4.toString());
                tuesdayText5.setText(text5.toString());
                tuesdayText6.setText(text6.toString());
                tuesdayText7.setText(text7.toString());

            }
        }
    }
    read.close();
    } catch (FileNotFoundException e) {
        e.printStackTrace();
    }

当我读取 csv 时,我只得到第二行,而这一行是用星期一字符串填充的。我的目标是,读取所有可能的行,并将它们写在不同的字符串中(monday/tuesday...)。我也会稍后添加其他工作日。我将不胜感激,非常感谢!

while 循环中的第一个 if 更改为 if (read.hasNext())

目前,if 中的条件计算结果为 false,因此它不会进入循环。 while 循环在第二行重复,您将获得星期一字符串中的最后一行数据。