Spring integration 如何使用spring集成逐行读取文件
我不熟悉Spring集成。我需要逐行读取txt文件,并使用SpringIntegration打印每一行。有人能举个例子或有什么想法吗?除了文件跟踪通道适配器之外,框架目前没有现成的组件,但需要在文件末尾停止 您可以编写一个简单的POJO,一次读取一行,并使用Spring integration 如何使用spring集成逐行读取文件,spring-integration,Spring Integration,我不熟悉Spring集成。我需要逐行读取txt文件,并使用SpringIntegration打印每一行。有人能举个例子或有什么想法吗?除了文件跟踪通道适配器之外,框架目前没有现成的组件,但需要在文件末尾停止 您可以编写一个简单的POJO,一次读取一行,并使用调用它 或者,POJO可以返回一个迭代行的迭代器,将调用迭代器,直到所有行都被使用 编辑: 我为filespliter添加了代码,您可以使用此代码 xml代码=fileCopyApplicationContext.xml <?xml
调用它
或者,POJO可以返回一个迭代行的迭代器
,
将调用迭代器,直到所有行都被使用
编辑:
我为filespliter
添加了代码,您可以使用此代码
xml代码=fileCopyApplicationContext.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:int="http://www.springframework.org/schema/integration"
xmlns:file="http://www.springframework.org/schema/integration/file"
xmlns:context="http://www.springframework.org/schema/context" xmlns:p="http://www.springframework.org/schema/p"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/integration
http://www.springframework.org/schema/integration/spring-integration.xsd
http://www.springframework.org/schema/integration/file
http://www.springframework.org/schema/integration/file/spring-integration-file.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd">
<context:property-placeholder />
<file:inbound-channel-adapter id="filesIn"
directory="E:/usmandata/logs/input/" filter="onlyPropertyFiles"
auto-startup="true">
<int:poller id="poller" fixed-delay="500" />
</file:inbound-channel-adapter>
<file:inbound-channel-adapter id="filesIn1"
directory="E:/usmandata/logs/input/" filter="onlyPropertyFiles"
auto-startup="true">
<int:poller id="poller" fixed-delay="500" />
</file:inbound-channel-adapter>
<int:service-activator input-channel="filesIn"
ref="handler" />
<bean id="handler" class="com.javarticles.spring.integration.file.FileHandler" />
<bean id="onlyPropertyFiles"
class="org.springframework.integration.file.config.FileListFilterFactoryBean"
p:filenamePattern="*.log" />
</beans>
谢谢加里的建议,谢谢加里。它帮助了我
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:int="http://www.springframework.org/schema/integration"
xmlns:file="http://www.springframework.org/schema/integration/file"
xmlns:context="http://www.springframework.org/schema/context" xmlns:p="http://www.springframework.org/schema/p"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/integration
http://www.springframework.org/schema/integration/spring-integration.xsd
http://www.springframework.org/schema/integration/file
http://www.springframework.org/schema/integration/file/spring-integration-file.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd">
<context:property-placeholder />
<file:inbound-channel-adapter id="filesIn"
directory="E:/usmandata/logs/input/" filter="onlyPropertyFiles"
auto-startup="true">
<int:poller id="poller" fixed-delay="500" />
</file:inbound-channel-adapter>
<file:inbound-channel-adapter id="filesIn1"
directory="E:/usmandata/logs/input/" filter="onlyPropertyFiles"
auto-startup="true">
<int:poller id="poller" fixed-delay="500" />
</file:inbound-channel-adapter>
<int:service-activator input-channel="filesIn"
ref="handler" />
<bean id="handler" class="com.javarticles.spring.integration.file.FileHandler" />
<bean id="onlyPropertyFiles"
class="org.springframework.integration.file.config.FileListFilterFactoryBean"
p:filenamePattern="*.log" />
</beans>
package com.javarticles.spring.integration.file;
import java.io.File;
import java.io.IOException;
import java.io.RandomAccessFile;
import java.nio.ByteBuffer;
import java.nio.channels.FileChannel;
public class FileHandler {
public void handleFile(File input) throws IOException {
// System.out.println("Copying file: " + input.getAbsolutePath());
RandomAccessFile file = new RandomAccessFile(input,"r");
FileChannel channel = file.getChannel();
//System.out.println("File size is: " + channel.size());
ByteBuffer buffer = ByteBuffer.allocate((int) channel.size());
channel.read(buffer);
buffer.flip();//Restore buffer to position 0 to read it
System.out.println("Reading content and printing ... ");
for (int i = 0; i < channel.size(); i++) {
System.out.print((char) buffer.get());
}
channel.close();
file.close();
}
}
package com.javarticles.spring.integration.file;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.util.Properties;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class SpringIntegrationFileCopyExample {
public static void main(String[] args) throws InterruptedException, IOException {
ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext(
"fileCopyApplicationContext.xml");
}
}