spring批量读取进程写入多个文件

时间:2013-05-08 12:40:42

标签: spring

我正在寻找Spring Batch中的一个实现,它将执行READ - >过程 - >写入平面文件。

我们将从输入文件夹中读出10个文件并在输出文件夹中写入10个文件。对于每个输入文件,将对数据进行一些处理/转换,并相应地生成输出(转换)文件。

请建议/指导如何进行。

2 个答案:

答案 0 :(得分:1)

您可以使用MultiResourceItemReader

请参阅以下示例代码

<bean id="multiResourceItemReader" class="org.springframework.batch.item.file.MultiResourceItemReader">
        <property name="resources"
 value="file:./src/main/resources/input/*.txt" />       <property
 name="delegate">           <bean
 class="org.springframework.batch.item.file.FlatFileItemReader">
                <property name="lineMapper">
                    <bean class="org.springframework.batch.item.file.mapping.DefaultLineMapper">
                        <property name="lineTokenizer">
                            <bean class="org.springframework.batch.item.file.transform.DelimitedLineTokenizer">
                                <property name="names" value="firstname,lastname,birth" />
                            </bean>
                        </property>
                        <property name="fieldSetMapper">
                            <bean class="com.zenika.workshop.springbatch.ContactFieldSetMapper" />
                        </property>
                    </bean>
                </property>             </bean>         </property>     </bean>

此处MultiResourceItemReader正在读取.txt文件夹中的所有/src/main/resources/input文件。

答案 1 :(得分:0)

简单线索

<bean   class="CustomReader1"   id="cr1">
    <property   name="folderLocation" value="/path/to/sourcefiles/parent/directory/"/>
</bean>
<bean   class="CustomReader2"   id="cr2">
    <property   name="filesLocations">
        <list>
            <value>/path/to/sourcefiles/parent/directory/file1.txt</value>
            <value>/path/to/sourcefiles/parent/directory/file2.txt</value>
            <value>/path/to/sourcefiles/parent/directory1/file1.txt</value>
            <value>/path/to/sourcefiles/parent2/directory/file1.txt</value>
        </list>
    </property>
</bean>
<bean   class="MainItemReader"  id="mainItemReader">
    <property   name="itemReaders">
        <list>
            <bean   ref="cr1"/>
            <bean   ref="cr2"/>
        </list>
    </property>
</bean>