我正在尝试阅读CSV文件,并将其显示为Android应用的基本列表。我使用的是Kopfgeldjaeger in this thread给出的方法。
如果代码管理(或未管理)以正确加载CSV文件,我添加了一些“toast”,它们在Android屏幕的底部显示“成功”或“失败”。见下文:
try {
CSVReader reader = new CSVReader(new InputStreamReader(getAssets().open("file.csv")));
for(;;) {
next = reader.readNext();
if(next != null) {
list.add(next);
} else {
break;
}
}
Toast.makeText(getApplicationContext(), "SUCCESS",
Toast.LENGTH_SHORT).show();
} catch (IOException e) {
e.printStackTrace();
Toast.makeText(getApplicationContext(), "FAIL",
Toast.LENGTH_SHORT).show();
}
当我加载应用程序时,我收到了“SUCCESS”消息,所以到目前为止一切都很顺利。现在,我想看看我是否可以加载任何数据。在Kopfgeldjaeger的回答中,建议我可以使用以下代码访问字符串:
list.get(1)[1]
所以,为了检查它是否有效,我尝试生成另一个吐司,如下所示:
Toast.makeText(getApplicationContext(), list.get(1)[1],
Toast.LENGTH_SHORT).show();
此添加的toast导致程序无法正确加载。问题是,我的Toast语法错误了,还是我的CSV文件加载不正确?
答案 0 :(得分:0)
有几件事需要检查:
list.size()
和list.get(0).length
,看看它们是否至少都是2。作为建议:引用的csv阅读器是ByteCode's OpenCSV的一部分。您可能希望包含该项目的最新源代码或jar。它支持自定义分隔符,还提供了将所有csv数据解析为字符串数组列表的简写:
CSVReader reader = new CSVReader(new FileReader("yourfile.csv"));
List myEntries = reader.readAll();