Spring Integration - 如何读取txt并打印它的文件名?

时间:2017-01-06 14:05:50

标签: spring spring-boot spring-integration

我的目标是在文件夹中检测到新文件名时继续读取文件夹并打印文件名。

我实际上会添加更多功能,但这是我要完成的第一步。

谢谢。

@Bean
public IntegrationFlow fileReadingFlow() {
    return IntegrationFlows
        .from(s -> s.file(new File('/tmp/test'))
            .patternFilter("*.txt"),
                e -> e.poller(Pollers.fixedDelay(1000)))
                    .transform(Transformers.fileToString())
                    ##### What do I need to do here to print the file name?
                    .get();
}

1 个答案:

答案 0 :(得分:0)

.handle(m -> System.out.println(m.getHeaders().get(FileHeaders.FILENAME)))

FileToStringTransformer在转换期间填充此类标题:

T result = this.transformFile(file);
        Message<?> transformedMessage = getMessageBuilderFactory().withPayload(result)
                .copyHeaders(message.getHeaders())
                .setHeaderIfAbsent(FileHeaders.ORIGINAL_FILE, file)
                .setHeaderIfAbsent(FileHeaders.FILENAME, file.getName())
                .build();