gpt4 book ai didi

java - Spring 集成文件 - 在写入文件之前通过入站 channel 适配器读取文件

转载 作者:行者123 更新时间:2023-12-04 05:16:44 27 4
gpt4 key购买 nike

我正在测试 SI sample我遇到了以下问题。

我的 SI ver-1.0.4

为了更容易理解,我粘贴以下内容:

fileCopyDemo-text.xml

    <file:inbound-channel-adapter id="filesIn"
directory="file:${java.io.tmpdir}/spring-integration-samples/input" filename-pattern=".*\.xml">
<integration:poller id="poller" >
<integration:interval-trigger initial-delay="1000" interval="2000" fixed-rate="true"/>
</integration:poller>
</file:inbound-channel-adapter>

<integration:service-activator input-channel="filesIn"
output-channel="filesOut"
ref="handler"/>

<file:outbound-channel-adapter id="filesOut"
directory="file:${java.io.tmpdir}/spring-integration-samples/output"
delete-source-files="true"/>

<bean id="handler" class="org.springframework.integration.samples.filecopy.Handler"/>

FileBasedCopyTest.java
public class FileBasedFileCopyTest {

public static void main(String[] args)
{
ApplicationContext ac = new ClassPathXmlApplicationContext("/META-INF/spring/integration/fileCopyDemo-file.xml");
}
}

Handler.java
public class Handler {

public File handleFile(File input) {
System.out.println("Copying file: " + input.getAbsolutePath());
return input;
}
}

我有另一个 java 类,它正在将文件创建到输入文件夹中。

示例.java
public static void main(String[] args) {

try {
String str = "SomeMoreTextIsHere";
File newTextFile = new File("C:/Windows/Temp/spring-integration-samples/input/thetextfile.xml");

FileWriter fw = new FileWriter(newTextFile);
fw.write(str);
fw.close();

} catch (IOException iox) {
iox.printStackTrace();
}
}

我已经运行 FileBasedCopyTest,它现在正在监听输入文件夹。

问题
我在 Debug模式下运行 Sample.java 文件和 momemt

FileWriter fw = new FileWriter(newTextFile);



执行我在Handler.java中接收控件,理想情况下我想在文件关闭后接收控件。如何处理这种情况?

PS:我也看过 this但不确定在这种情况下如何处理。

最佳答案

无论您是否使用 Spring Integration,这都是一个常见问题。

一种常用方法(由 SI 在出站适配器中使用)是使用临时名称(例如 foo.txt.writing)写入文件,然后将其重命名为 foo.txt写完之后。

关于java - Spring 集成文件 - 在写入文件之前通过入站 channel 适配器读取文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14171283/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com