我正在寻找Spring Batch中的一个实现,它将执行READ - >过程 - >写入平面文件。
我们将从输入文件夹中读出10个文件并在输出文件夹中写入10个文件。对于每个输入文件,将对数据进行一些处理/转换,并相应地生成输出(转换)文件。
请建议/指导如何进行。
答案 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>