java - 使用Spring Batch读取以#开头的文件内容

标签 java spring spring-batch file-read

我有一个非常简单的 Spring Batch 应用程序,它读取多个文件并将其写入一个文件。我的项目在所有情况下都运行得非常好,除非我的文件中的行以“#”开头。我的读者不会读那句话。问题是上层系统将发送每行以 # :(

开头的文件

有人遇到过类似的问题以及如何解决吗?

提前致谢..

我的 tokenizerconfig

<bean id="accountDataTokenizer" class="org.springframework.batch.item.file.transform.PatternMatchingCompositeLineTokenizer">
    <property name="tokenizers">
        <map>
            <entry key="#ACCOUNT*" value-ref="headerRecordTokenizer" />
            <entry key="*" value-ref="defaultLineTokenizer" />
        </map>
    </property>
</bean>

最佳答案

FlatFileItemReader 提供了设置标识注释行的字符串的功能。这是通过 FlatFileItemReader#setComments(String[] prefixes) 配置完成的。因此,就您的情况而言,您可以按如下方式配置 FlatFileItemReader:

@Bean
public FlatFileItemReader reader() {
    FlatFileItemReader reader = new FlatFileItemReader();
    ...
    reader.setComments(new String[] {"#"});
    return reader;
}

您可以在此处的文档中阅读有关 FlatFileItemReader 和此方法的更多信息:https://docs.spring.io/spring-batch/trunk/apidocs/org/springframework/batch/item/file/FlatFileItemReader.html

关于java - 使用Spring Batch读取以#开头的文件内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36609247/

相关文章:

Spring,根据配置文件切换属性文件

java - Spring 可以缓存组件扫描信息/ Autowiring 以缩短启动时间吗?

multithreading - 在主线程执行完成后, Spring 批处理线程不返回

java - 使用 Java Config 时的 Spring Batch 表前缀

spring - 如何更改 Spring 批处理(作业存储库)oracle 数据源架构

java - 从 GNOME 运行时如何获取可运行的 .jar 文件的位置

java - 关于使用 Oracle 10g 进行后续锁定的 Hibernate 警告

java - 使用 Spring 集成执行器 channel 时超出 GC 限制

java - 如何在知道日期的 CalendarView 中将焦点设置在特定日期是 "dd/mm/yyyy"

java - spring中如何将uri字符串转换为复杂对象类型