【问题标题】:Spring Integration - How to read a txt and print it's filename?Spring Integration - 如何读取 txt 并打印它的文件名?
【发布时间】:2017-01-06 14:05:49
【问题描述】:

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

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

谢谢。

@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();
}

【问题讨论】:

    标签: spring spring-boot spring-integration


    【解决方案1】:
    .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();
    

    【讨论】:

      猜你喜欢
      • 2015-03-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-06-20
      • 1970-01-01
      • 2021-03-01
      相关资源
      最近更新 更多