问题标签 [apache-commons-csv]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
627 浏览

java - 使用哪个 apache commons CSV 解析器?SOLR CSV 还是通用 CSV?他们都一样吗?

可能重复:
用于 java 的 csv api

commons-csvsolr-commons-csv上的任何开发人员似乎都没有提到它专门用于apache-solr/lucene

您使用的首选 CSV 解析器是什么?我应该只选择其中一个,这只是 CSV,没什么复杂的。

0 投票
5 回答
36507 浏览

java - Apache Commons CSV 库中封装的令牌和分隔符之间的字符无效

使用Apache Commons CSV库解析 CSV 文件时出现以下错误。

这个错误是什么意思?

0 投票
4 回答
24788 浏览

java - 未指定标头映射,无法按名称访问记录值(Apache Commons CSV)

我在尝试读取 csv 时收到此错误消息:

Java 结果:1

我正在使用 Apache Commons CSV 库 1.1。尝试用谷歌搜索错误消息,我得到的唯一东西是 grepcode 等网站上的代码列表。

这是我的代码:

CSV的内容:

它位于我的 src 文件夹中。

0 投票
3 回答
3361 浏览

java - Apache Commons CSV - 不区分大小写的标题?

Apache CSV实现中是否有内置功能可以在读取 csv 时忽略标题大小写?

前段时间我们实现了将 CSV 导出文件转换为 SQL 的实用程序。为此,我们选择了 Apache CSV。到目前为止一切都很好,但现在我们收到了更改请求。

我们处理的所有 CSV 文件都必须包含标题,现在我们应该以不区分大小写的方式读取这些标题,这样我们的用户就不必费力地观察他们创建的 CSV 是否符合我们的标题大小写要求。

代码示例:

Data.NAME 在哪里

当用户使用“名称”作为其 CSV 中的列标题而不是使用大写“N”的“名称”时,问题显然会出现。

我已经关注了 API 和源代码,但找不到任何东西。有没有办法强制 CSVRecord 使用 CaseInsensitiveMap 进行映射或类似的东西?

0 投票
2 回答
9701 浏览

java - 在 java 中使用 apache commons 编写 CSV 时包括双引号

我正在使用 apache commons CSV 来编写 csv 文件。我想坚持这个图书馆。当我正在编写一个 csv 文件时,在生成文件的第一列中,它包含双引号作为引号字符,其他列按预期生成。

我真的很想在这里去掉双引号。请在下面找到相同的代码。

临时文件

"",hello1,,test
"#",hello2,,test
"",hello3,,test
"",hello4,,test

我不希望在每一行的开头都有一个引号字符。我只想要一个不带引号的空字符串,与第 3 列相同。有人可以帮忙吗?

0 投票
3 回答
13037 浏览

java - 如何解析可能具有两个分隔符之一的 CSV 文件?

在我的情况下,有效的 CSV 是由逗号或分号分隔的。我对其他库持开放态度,但它必须是 Java。通读 Apache CSVParser API,我唯一能想到的就是这样做似乎效率低下且丑陋。

有没有办法先检查分隔符,或者允许两个分隔符?任何人都有比捕捉异常更好的主意吗?

0 投票
1 回答
147 浏览

java-7 - Java - 由具体类扩展的通用类

我有许多 POJO 风格的类,它们共享一个功能,比如readCSV方法。所以我想使用这些 POJO 可以扩展的单父(或者可能是抽象的,不确定是否应该是)类。这是一个伪代码:

在其中一个孩子班上,说 ChildA

如何对 CSVUtil 进行编码,以便在运行时确定父类中定义的readCSV中的子类?

是否有可能使这个方法静态并且仍然被继承?

作为替代方案,Apache Commons CSV 中是否有 API 通常可以读取 CSV,确定其架构,并将其包装为通用对象(我不知道我在这里是否有意义),并返回该对象的列表是 ?

0 投票
2 回答
10578 浏览

java - 如何通过 CSVParser 处理大文件?

我有一个大.csv文件(大约 300 MB),它是从远程主机读取的,并解析为目标文件,但我不需要将所有行复制到目标文件中。复制时,我需要从源中读取每一行,如果它传递了一些谓词,则将该行添加到目标文件中。

我想 Apache CSV ( apache.commons.csv) 只能解析整个文件

所以我不能使用BufferedReader. 根据我的代码,new CSVParser()应该为每一行创建一个实例,这看起来效率低下。

在上述情况下,如何解析单行(具有已知表头)?

0 投票
1 回答
286 浏览

java - 为什么类在 apache commons csv 库中声明为 final

Apache commons CSV Parser 类抛出异常

“在封装令牌完成之前达到 EOF”

对于伪代码

错误的原因是我的 CSV 文件被分块解析,即我没有一次传递整个文件内容,而是其中的一部分,并且错误是有道理的,因为不能保证遇到关闭标记

例如,字符串可以是a1,b1,c1,d1,e1,f1\na,b,"csdsds,您在第 2 行中看到的右引号丢失。

我想修改库源代码以记住最后一行并将其与下一个文件内容块合并,例如:下一个块可能是dfdfd",a,c这样我的内容变为a,b,"csdsds,dfdfd",a,c

通过源代码,我看到的第一步是我需要扩展Lexer.java并覆盖该方法,因为这个类抛出了上述 EOF 异常,并且还扩展了 CSVParser.java

但是,问题是这些类被声明为 final,我不能扩展它们。我想了解为什么将这些类声明为最终类?

0 投票
1 回答
1975 浏览

java - 如何替换 CSV 文件中的特定行?

是否可以访问 CSV 文件中的特定行并替换其中的特定字段?例如,在这个伪代码中:

尝试了Apache Commons CSVOpenCSV,但不知道如何使用它们。我能想到的唯一方法是遍历文件,将所有内容存储在一个新对象中并创建一个文件,但这似乎不是一个好方法。

感谢您的任何建议!