【发布时间】:2014-03-27 11:50:26
【问题描述】:
我的问题与this 的问题一模一样,但我无法使用提到的解决方案。
总结:
读取了一个 csv 文件,但包含这样的双引号 Everything is ok&"some text& this must be another field"&...(& 是分隔符)
所以通过这个例子,解析是错误的,因为它将多个字段分配给一个
由于 csv 中的文本种类繁多(没有安全的引号字符),上述问题的答案无济于事。
我还尝试通过将这段代码放在 xml 配置中来禁用 quoteCharacter:
<bean id="lineTokenizer"
class="org.springframework.batch.item.file.transform.DelimitedLineTokenizer">
<property name="delimiter" value="&" />
<property name="quoteCharacter" value="" />
...
但有一个很好的例外:
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'customLineMapper' defined in class path resource [migration-job.xml]: Cannot resolve reference to bean 'lineTokenizer' while setting bean property 'lineTokenizer'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'lineTokenizer' defined in class path resource [migration-job.xml]: Initialization of bean failed; nested exception is org.springframework.beans.TypeMismatchException: Failed to convert property value of type 'java.lang.String' to required type 'char' for property 'quoteCharacter'; nested exception is java.lang.IllegalArgumentException: String [] with length 0 cannot be converted to char type
是否可以在不分配 quoteCharacter 常量的情况下读取双引号,或者其他可能解决此问题的方法?
更新: 也试过这个:
bean id="lineTokenizer"
class="org.springframework.batch.item.file.transform.DelimitedLineTokenizer">
<property name="delimiter" value="&" />
<property name="quoteCharacter"><null/></property>
但又遇到了一个例外:
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'customLineMapper' defined in class path resource [migration-job.xml]: Cannot resolve reference to bean 'lineTokenizer' while setting bean property 'lineTokenizer'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'lineTokenizer' defined in class path resource [migration-job.xml]: Initialization of bean failed; nested exception is org.springframework.beans.TypeMismatchException: Failed to convert property value of type 'null' to required type 'char' for property 'quoteCharacter'; nested exception is java.lang.IllegalArgumentException: Cannot convert value of type [null] to required type [char] for property 'quoteCharacter': PropertyEditor [org.springframework.beans.propertyeditors.CharacterEditor] returned inappropriate value of type [null]
【问题讨论】:
-
您是否尝试将值设置为
<null/>? -
@bellabax 我现在尝试使用 null - 更新的问题,仍然没有:(
标签: spring-batch