问题标签 [univocity]

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 投票
1 回答
203 浏览

csv - Univocity bean 处理器在分布式系统中表现出不一致的行为

我正在使用 Univocity bean 处理器进行文件解析。我能够在我的本地盒子上成功使用它。但是在具有多个主机的环境中部署相同的代码时,解析器显示出不一致的行为。比如说对于无效文件,它不会处理失败,对于有效文件,它有时也会处理失败。

想知道bean处理器实现是否适合多线程分布式环境。

示例代码:

目标输入Bean:

0 投票
1 回答
503 浏览

univocity - Univocity - 多次读取期间文件头验证的问题

我正在使用 Univocity-Parser 的 bean 迭代器来读取文件的每一行并获取 bean。当我尝试多次读取同一个文件时,我在库中观察到一种奇怪的行为。

将 File 对象传递给 CsvParser 实例时的代码: private static void testBeanIterator() throws Exception {

执行代码时,控制台输出如下:

以下是该文件的内容:

据我所知,问题的出现是因为我将 File 对象传递给 CsvParser。CsvParser 在内部创建一个未关闭的 InputStream 对象。如果我传递的是 Buffered reader 对象而不是 File 对象,则不会出现问题。

我无法理解这是否是 Univocity-Parsers 的一个已知问题,还是我在理解中遗漏了什么。

0 投票
1 回答
696 浏览

validation - Univocity 解析器/必需的验证 (NotNull)

我正在使用固定长度解析器将带有注释的文件和 java bean 作为映射类导入。如何根据需要定义字段?找不到注释。我可以为这样的验证实现一个自定义转换器吗?

0 投票
1 回答
240 浏览

csv - 在单义性中使用默认空转换时出现问题

我正在使用单义性解析器来解析 csv 文件。

第一个条目:“ref1,ref2”

Bean 值:referenceNumber1 = ref1,referenceNumber2 = ref2

第二个条目:“ref1”

Bean 值:referenceNumber1 = ref1,referenceNumber2 = "NULL"

第三个条目:“ref1”

Bean 值:referenceNumber1 = ref1,referenceNumber2 = null

对于第三种情况,我想要 referenceNumber2 = "NULL" 但它是空的。看起来因为在 ref1 单义性之后没有逗号,所以没有应用任何 bean 转换并认为它是文件结尾。有什么办法可以在这里实现“NULL”吗?

0 投票
1 回答
690 浏览

java - 空字符串字段的 Univocity 解析器问题

对于使用多个前瞻的固定宽度解析,空字符串会导致问题(即,fieldX=' ')。因此,对于只有 2 条记录的固定格式文件,如果第一条记录以空字符串字段结尾,则会导致问题。记录中的最后一个字段被视为空(null),它不会将下一条记录中的第一个字符视为前瞻,而是将第二个字符视为前瞻。如果第一条记录中的最后一个字段具有非空值 ( fieldX='11111'),那么这不是问题并且可以正常工作。对我来说,解决方法是设置settings.getFormat().setPadding('~')文件中没有的一些字符。

是否有任何设置允许接受空字符串并将它们视为“”而不是 NULL。

请指教。

0 投票
2 回答
368 浏览

java - 使用 UniVocity 将带有集合的对象写入 CSV

给定两个类

我想打印以下 CSV 文件(使用 ',' 作为分隔符,但为了可见性,我在这里使用了空格):

使用 Conversion 注释和实现提供的 Conversion 接口的类是否可以创建上述 CSV(通过打印 Inventory 类)?我看到他们提供了带有列表的示例,但他们使用分隔符将它们合并到一列中。我没有看到这个案例的任何例子。

0 投票
1 回答
376 浏览

java - Univocity CSV 解析器在单个 CSV 中具有多行的多个 bean

给定以下课程

和以下 CSV(使用 ',' 作为分隔符,但为了可见性,我在这里使用了空格):

在这种情况下,“IH”表示该行是库存标题,“IL”表示它是库存行。库存标题后面的库存行行仅与该库存有关。Inventory 对象的结尾由新的清单标题行或文件的结尾表示。

我想把它解析成一个列表。解析单个 Inventory 对象很简单,只需在第 0 列添加一个 ValueSwitch,为 InventoryHeader 和 InventoryLine 创建一个 BeanListProcessor 并将结果添加到新的 Inventory 对象。

使用上述方法,我们将获得标题和行的列表,但是如何知道哪些行对应于哪些标题?

0 投票
1 回答
418 浏览

univocity - 使用 Univocity Parser 验证解析的字段

我想知道在使用 CsvRoutines 包时是否可以检查和验证字段。基本上,如果第一列只有数字,我想处理一行,否则跳过/可能抛出异常。我猜 2.7.0 中发布的 @Validate 注释可以用来实现这一点。但我想知道是否有任何其他方法可以实现与 2.5.9 等早期版本相同的效果?

0 投票
0 回答
807 浏览

java - 无法使用 Univocity 解析器解析日期

我使用单义性来解析 csv 文件。但我无法将字符串格式的日期解析为 java.util.Date。@Format(formats ="YYYY-MM-DD") 注释似乎不起作用。

我正在尝试解析行

2015-04-30,67,"P",1972-02-28,2006-08-11,"97912a4321dd510","49d180ecf56132819571bf39d9b7b34"

但它在解析后给了我这种格式,它不是 YYYY-MM-DD。你能帮助我吗?

day=2014 年 12 月 28 日星期日 00:00:00 CET,id=5151,type=B,originDate=1950 年 12 月 31 日星期日 00:00:00 CET,relDate=2010 年 12 月 26 日星期日 00:00:00 CET,legalId=3bbfca2849c01ad , 名称=236e5fcfd21603c33b82ddd89bab7c4

我的模型课:

使用方法测试输出:

0 投票
2 回答
1057 浏览

java - 如何使用 Univocity 例程验证 CSV 标头?

当我迭代 Java bean 时,我将 Univocity CSV 解析器与例程一起使用。有没有办法验证 CSV 标头?当我编辑 CSV 并添加无效标头时,它只是插入给定的 bean null 而没有任何错误。

型号类:

解析器: