问题标签 [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.
java - 使用哪个 apache commons CSV 解析器?SOLR CSV 还是通用 CSV?他们都一样吗?
可能重复:
用于 java 的 csv api
commons-csv和solr-commons-csv上的任何开发人员似乎都没有提到它专门用于apache-solr/lucene。
您使用的首选 CSV 解析器是什么?我应该只选择其中一个,这只是 CSV,没什么复杂的。
java - Apache Commons CSV 库中封装的令牌和分隔符之间的字符无效
使用Apache Commons CSV库解析 CSV 文件时出现以下错误。
这个错误是什么意思?
java - 未指定标头映射,无法按名称访问记录值(Apache Commons CSV)
我在尝试读取 csv 时收到此错误消息:
Java 结果:1
我正在使用 Apache Commons CSV 库 1.1。尝试用谷歌搜索错误消息,我得到的唯一东西是 grepcode 等网站上的代码列表。
这是我的代码:
CSV的内容:
它位于我的 src 文件夹中。
java - Apache Commons CSV - 不区分大小写的标题?
Apache CSV实现中是否有内置功能可以在读取 csv 时忽略标题大小写?
前段时间我们实现了将 CSV 导出文件转换为 SQL 的实用程序。为此,我们选择了 Apache CSV。到目前为止一切都很好,但现在我们收到了更改请求。
我们处理的所有 CSV 文件都必须包含标题,现在我们应该以不区分大小写的方式读取这些标题,这样我们的用户就不必费力地观察他们创建的 CSV 是否符合我们的标题大小写要求。
代码示例:
Data.NAME 在哪里
当用户使用“名称”作为其 CSV 中的列标题而不是使用大写“N”的“名称”时,问题显然会出现。
我已经关注了 API 和源代码,但找不到任何东西。有没有办法强制 CSVRecord 使用 CaseInsensitiveMap 进行映射或类似的东西?
java - 在 java 中使用 apache commons 编写 CSV 时包括双引号
我正在使用 apache commons CSV 来编写 csv 文件。我想坚持这个图书馆。当我正在编写一个 csv 文件时,在生成文件的第一列中,它包含双引号作为引号字符,其他列按预期生成。
我真的很想在这里去掉双引号。请在下面找到相同的代码。
临时文件
"",hello1,,test
"#",hello2,,test
"",hello3,,test
"",hello4,,test
我不希望在每一行的开头都有一个引号字符。我只想要一个不带引号的空字符串,与第 3 列相同。有人可以帮忙吗?
java - 如何解析可能具有两个分隔符之一的 CSV 文件?
在我的情况下,有效的 CSV 是由逗号或分号分隔的。我对其他库持开放态度,但它必须是 Java。通读 Apache CSVParser API,我唯一能想到的就是这样做似乎效率低下且丑陋。
有没有办法先检查分隔符,或者允许两个分隔符?任何人都有比捕捉异常更好的主意吗?
java-7 - Java - 由具体类扩展的通用类
我有许多 POJO 风格的类,它们共享一个功能,比如readCSV方法。所以我想使用这些 POJO 可以扩展的单父(或者可能是抽象的,不确定是否应该是)类。这是一个伪代码:
在其中一个孩子班上,说 ChildA
如何对 CSVUtil 进行编码,以便在运行时确定父类中定义的readCSV中的子类?
是否有可能使这个方法静态并且仍然被继承?
作为替代方案,Apache Commons CSV 中是否有 API 通常可以读取 CSV,确定其架构,并将其包装为通用对象(我不知道我在这里是否有意义),并返回该对象的列表是 ?
java - 如何通过 CSVParser 处理大文件?
我有一个大.csv
文件(大约 300 MB),它是从远程主机读取的,并解析为目标文件,但我不需要将所有行复制到目标文件中。复制时,我需要从源中读取每一行,如果它传递了一些谓词,则将该行添加到目标文件中。
我想 Apache CSV ( apache.commons.csv
) 只能解析整个文件
所以我不能使用BufferedReader
. 根据我的代码,new CSVParser()
应该为每一行创建一个实例,这看起来效率低下。
在上述情况下,如何解析单行(具有已知表头)?
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,我不能扩展它们。我想了解为什么将这些类声明为最终类?
java - 如何替换 CSV 文件中的特定行?
是否可以访问 CSV 文件中的特定行并替换其中的特定字段?例如,在这个伪代码中:
尝试了Apache Commons CSV和OpenCSV,但不知道如何使用它们。我能想到的唯一方法是遍历文件,将所有内容存储在一个新对象中并创建一个文件,但这似乎不是一个好方法。
感谢您的任何建议!