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 循环在第二行重复,您将获得星期一字符串中的最后一行数据。
我很困惑。 这是我的 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 循环在第二行重复,您将获得星期一字符串中的最后一行数据。