带有双引号问题的Spring Batch FieldSet

时间:2015-08-06 14:59:33

标签: regex escaping spring-batch fieldset

我正在处理的批处理应用程序从分隔的文本文件中读取和处理行。应用程序使用FlatFileReader读取分隔的文本文件, test.txt

( aa|bb|cc|vv|nn|mm|ff|gg|ee|"rr|gg|jj||||ii| )

但问题是文件中的某些数据有双引号,我需要用双引号处理数据。

不幸的是,弹出批处理中的FieldSet方法是在双引号具有单个字符串后读取字符串。即使有两个或三个双引号,它抛出异常我的程序抛出异常。 例外:

ArrayIndexOutOfBoundsException: Array index out of range,
mapping.DefaultFieldSet.readAndTrim(DefaultFieldSet.java).

任何人遇到这个问题,如果是这样,那么适当的解决方案是什么?

遗憾的是,操作数据本身并不是一种选择。我尝试在每个双引号之前添加一个转义字符,但无论如何都会抛出异常。

非常感谢任何帮助。

我已将下面的属性标记添加到我的DelimiterLineTokenizer然后问题已解决,但有时我收到错误“ item.DefaultItemFailureHandler - 读取时遇到错误”, “引起: org.springframework.batch.core.JobInterruptedException:JobExecution中断。

     <Property name="lineTokenizer"> 
     <beanclass="org.springframework.batch.item.file.transform.DelimitedLineTokenizer">
     <property name="quoteCharacter" value="@" /> 
     </bean> 
     </property> 

非常感谢任何帮助。

我目前正在使用spring批量版本1.1.2,我无法用单双引号处理数据(我的意思是只有一个双引号)。我得到的例外是: “ quartz.SimpleThreadPoolTask​​Executor - 执行Runnable时出错: org.springframework.batch.core.UnexpectedJobExecutionException:作业执行中意外检查的异常

org.springframework.batch.core.JobInterruptedException:JobExecution被中断。         在org.springframework.batch.core.job.SimpleJob.execute “ 再次操纵数据不是一种选择。我见过很多其他帖子,但目前还没有人使用春季批次1.1.2。版本升级也不是选项。 任何帮助非常感谢。

0 个答案:

没有答案