Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/331.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何使用SpringBatch将头文件和尾文件写入现有文件,而不覆盖该文件中的信息?_Java_Spring_Spring Batch - Fatal编程技术网

Java 如何使用SpringBatch将头文件和尾文件写入现有文件,而不覆盖该文件中的信息?

Java 如何使用SpringBatch将头文件和尾文件写入现有文件,而不覆盖该文件中的信息?,java,spring,spring-batch,Java,Spring,Spring Batch,我在一个目录中有多个文件,这些文件中的内容大小会有所不同 Ex文件1: 第1行.数据 Ex文件2: 第1行.数据 第2行.数据 第3行.数据 我需要在文件顶部附加一个头,在底部附加一个尾,而不使用springbatch覆盖文件中的数据 Ex文件1: HeaderFooterZZZ0000000xxxxxxxx 第1行.数据 HeaderFooterZZZ0000000xxxxxxxx Ex文件2: HeaderFooterZZZ0000000xxxxxxxx 第1行.数据 第2行.数据 第3行.

我在一个目录中有多个文件,这些文件中的内容大小会有所不同

Ex文件1:

第1行.数据

Ex文件2:

第1行.数据

第2行.数据

第3行.数据

我需要在文件顶部附加一个头,在底部附加一个尾,而不使用springbatch覆盖文件中的数据

Ex文件1:

HeaderFooterZZZ0000000xxxxxxxx

第1行.数据

HeaderFooterZZZ0000000xxxxxxxx

Ex文件2:

HeaderFooterZZZ0000000xxxxxxxx

第1行.数据

第2行.数据

第3行.数据

HeaderFooterZZZ0000000xxxxxxxx

我的上下文文件的writer部分具有以下常规配置,但没有向现有测试文件添加头或尾文件。如何配置flatFileItemWriter,以便在不覆盖文件现有数据的情况下向现有文件添加标题和尾部

<bean id="addHeaderTrailerWriter" class="org.springframework.batch.item.file.FlatFileItemWriter" scope="step">
        <property name="lineAggregator" ref="lineAggregator" />
        <property name="resource" value="file://#{stepExecutionContext['WORK.FILE.NAME']}" />
        <property name="headerCallback" ref="headerFooterCallback" />
        <property name="footerCallback" ref="headerFooterCallback" />
    </bean>
    <bean id="lineAggregator" class="org.springframework.batch.item.file.transform.PassThroughLineAggregator"/>
    <bean id="headerFooterCallback" class="headerFooterCallbackClass">
        <constructor-arg name="headerFooter" ref="customHeaderFooter" />
    </bean>
    <bean id="customHeaderFooter" class="customHeaderFooterImplClass" > 
        <property name="input1" value="HEADERFOOTER" />
        <property name="input2" value="ZZZZZZZZ" />
        <property name="inout3" value="00000000" />
        <property name="input4" value="XXXXXXXX" />
    </bean>

无法覆盖文件本身以添加页眉和页脚。在
FlatFileItemWriter
中有一个
append
模式,但它不会在文件“inline”中的当前数据之前插入头

您可以通过两个步骤创建作业:

  • 步骤1(面向块):从文件中读取并写入另一个文件,添加页眉和页脚
  • 步骤2(tasklet):删除原始文件并重命名副本
希望这有帮助