24.21. 写入文件
Camel 也能够编写文件,即生成文件。在以下示例中,我们将在将进程写入目录前收到有关 SEDA 队列的一些报告。
24.21.1. 使用 Exchange.FILE_NAME
写入子目录
通过使用单个路由,可以将文件写入任意数量的子目录。如果您有路由设置,如下所示:
<route> <from uri="bean:myBean"/> <to uri="file:/rootDirectory"/> </route>
您可以将 header Exchange.FILE_NAME
设置为值,例如:
Exchange.FILE_NAME = hello.txt => /rootDirectory/hello.txt Exchange.FILE_NAME = foo/bye.txt => /rootDirectory/foo/bye.txt
这可让您有一个路由来将文件写入多个目的地。
24.21.2. 通过相对于最终目的地的临时目录写入文件
有时您需要临时将文件写入相对于目标目录的一些目录。当某些具有有限过滤功能的外部进程是从您要写入的目录中读取时,通常会发生这种情况。在以下示例中,文件将写入 /var/myapp/filesInProgress
目录,并在进行数据传输后,将以原子方式移到' /var/myapp/finalDirectory 'directory。
from("direct:start"). to("file:///var/myapp/finalDirectory?tempPrefix=/../filesInProgress/");