当前位置: 首页 > 知识库问答 >
问题:

OpenCSV -读取所有行

常朗
2023-03-14

我对java librairie OpenCSV有问题。我没有读完我的CSV文件的所有行,我只读了第二行,我不知道为什么...

我的CSV文件:

    "NumACLEB","Nom","Prenom","Niveau","Telephone","Portable","Rue","Code Postale","Ville","Activite","Adresse Mail","Cotisation Acleb","Cotisation Adherent"
"0","Pierre","Paul","Jacques","0585987445","0187458596","tests","92569","PARIS","POKER","test@test.fr","14","11"
"0","Julie","Julie","Beginner","0878589632","1445856996","test3","93857","PAris","POKER","foo@foo.fr","14","11"

我使用OpenCSV创建一个android列表,只有“Julie”“Julie”这一行被添加了3次...

try
        {
            CSVReader csvReader = new CSVReader(new FileReader(SettingsActivity.SaveFolder+"PDF/Liste_Membres.csv"),'\t');
            //List<String[]> content = csvReader.readAll();
            String[] row = csvReader.readNext();
            while(row != null) 
            {
                if(row[1]!="Nom")
                {
                    map.put("viewname", row[1]+"  "+row[2]);
                    map.put("viewDetails", "Ville : "+row[8]+" Cotisation ACLEB : "+row[11]+"€ Cotisation poker : "+row[12]+"€");
                    map.put("img", String.valueOf(R.drawable.aclebapc_logo));
                    listItem.add(map);
                }else
                {
                    map.put("viewname", "NOM    Prenom");
                    map.put("viewDetails", "Ville   -  Cotisation ACLEB   -    Cotisation poker");
                    map.put("img", String.valueOf(R.drawable.aclebapc_logo));
                    listItem.add(map);
                }
                row = csvReader.readNext();
            }
        }catch(IOException ex)
        {
            Context context = getApplicationContext();
            CharSequence text = "Erreur lors de l'ouverture du fichier CSV...";
            int duration = Toast.LENGTH_SHORT;
            Toast toast = Toast.makeText(context, text, duration);
            toast.show();
        }

共有2个答案

裴宜春
2023-03-14

Beautifulcoder一针见血。您对插入到地图中的每个值使用相同的键,因此您将覆盖所有内容,并且只能看到您放入地图中的最后一个项目

禹兴安
2023-03-14

我想< code>map是某种字典吧?当你一次又一次地在相同的键中输入值时,它会覆盖先前的值。

我根据您试图解决的问题推荐不同的数据结构。

 类似资料:
  • 我在使用OPENCSV并尝试从一行中读取特定列时遇到了小问题。我有一个看起来像这样的csv文件 现在我只想读取第2列和第3列(名称和名称2)。 我的代码看起来像这样 我已经尝试手动将“i”变量设置为1和2。但是我得到了日志中显示的4个相同的结果。缺少什么?谢谢!

  • 我使用OpenCSV进行CSV文件的读写。在I hsd安装早期版本的Java(即Java 6)之前,它工作得很好。安装完之后,我的代码就停止工作了: 线程“main”java.lang.UnsupportedClassVersionError:COM/OpenCSV/CSVReader:不支持Major.Minor版本51.0在java.lang.ClassLoader.DefineClass1(

  • 问题内容: 我想使用BufferedReader在控制台中输入多行文本,然后单击“ Enter”以查找整个文本长度的总和。问题在于,似乎我进入了一个无限循环,当我按“ Enter”键时,程序并没有结束。我的代码如下: 你能告诉我我在做什么错吗? 问题答案: 阅读所有行的惯用方式是。另外,我建议发表声明。就像是 如果你想,当你收到一个空行来结束循环,在添加一个测试为循环 JLS-14.15。该声明说

  • 我正在通过Pandas的read_sql和外部应用程序(DbVisualizer)运行完全相同的查询。 DbVisualizer返回206行,而pandas返回178行。 我试过根据如何在不耗尽内存的情况下从sql查询中创建大型pandas数据帧?中提供的信息读取pandas by chucks中的数据,它没有做出任何改变。 造成这种情况的原因和补救方法是什么? 这些栏目包括:日期、年份、工作日、

  • 我用的是opencsv 2.3 for Java。我像这样设置我的CSVReader对象来处理 在我的文件中,我有以下几行: 数据从SQL Server表导出到CSV文件。 OpenCSV正确识别第一行的三列,但第二行只有两列。 如何配置 OpenCSV 以识别第二行的三列数据?

  • 我已经考虑了很长一段时间了。我正在尝试从雅虎的股票API下载数据。当您使用 API 时,它会为您提供一个文件。我一直在看opencsv,这似乎很完美,除了我想避免下载和保存文件,如果可能的话。 根据示例,OpenCSV只能从中读取。根据Oracle关于的文档,文件需要是本地的。 是否可以使用 OpenCSV 从远程文件读取而不下载?