如何在Android应用程序中解析CSV文件?

22

我有一个CSV文件存放在drawable/asset文件夹中。在这个CSV文件中有四列,第一列是日期,其余三列是整数数据。

我需要解析这个CSV文件并将数据保存在不同的数组中。

我已经搜索了解决方案,但是我没有得到一个正确的思路来完成这个任务。


这可能会对你有所帮助: https://dev59.com/jW435IYBdhLWcg3wigkk - necixy
1个回答

33

我喜欢这个CSV读取器:https://mvnrepository.com/artifact/net.sf.opencsv/opencsv/2.3

只需要将它添加到你的项目中。

示例代码(假设有文件assets/test.csv):

        String next[] = {};
        List<String[]> list = new ArrayList<String[]>();

        try {
            CSVReader reader = new CSVReader(new InputStreamReader(getAssets().open("test.csv")));
            while(true) {
                next = reader.readNext();
                if(next != null) {
                    list.add(next);
                } else {
                    break;
                }
            }
        } catch (IOException e) {
            e.printStackTrace();
        }

你可以使用以下方式访问导入的数据:

list.get(1)[1]

这将返回一个字符串。


@PratikButani,for(;;)可以做到这一点,所以如果您想要在该循环之后再次执行它,那么可以这样做。 - chwi
CSVReader 对我来说很好用,尝试了很多其他的 CSV 解析方案后才找到它。我很惊讶好的 CSV 解析仍然是一个难以实现的解决方案。在我的情况下,我不得不处理多行,而这是唯一能够解决的文件。 - zeeshan
如果我想解析位于URL上的CSV文件怎么办? - Si8
@Si8 Retrofit。ResponseBody。CSVReader reader = new CSVReader(response.body().charStream()); - Filowk

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接