Apache camel 如何拆分为文件并将编号添加到输出文件名(不覆盖)

Apache camel 如何拆分为文件并将编号添加到输出文件名(不覆盖),apache-camel,Apache Camel,我有一条将大文件分割成小文件的路径。所有拆分文件都应写入同一目录。文件端点(生产者)的默认行为似乎总是覆盖。 有没有一种简单的方法可以让文件生产者通过在文件名中添加一个计数器来进行简单的重命名?与在操作系统中一样,如果您对文件进行复制/粘贴,并且操作系统通过添加(copy-1…)自动重命名。您可以使用spliter CamelSplitIndex属性,并使用生产者的文件名选项中的简单表达式添加拆分索引,如下面的路径所示 from("file:data/inbox?") .split(b

我有一条将大文件分割成小文件的路径。所有拆分文件都应写入同一目录。文件端点(生产者)的默认行为似乎总是覆盖。
有没有一种简单的方法可以让文件生产者通过在文件名中添加一个计数器来进行简单的重命名?与在操作系统中一样,如果您对文件进行复制/粘贴,并且操作系统通过添加(copy-1…)自动重命名。

您可以使用spliter CamelSplitIndex属性,并使用生产者的文件名选项中的简单表达式添加拆分索引,如下面的路径所示

 from("file:data/inbox?")
    .split(body(String.class).tokenize("\n"))
    .to("file:data/outbox/?fileName=${file:name.noext}-${property.CamelSplitIndex}.csv");
因此,对于4行输入csv test.csv, 产出将是

test-0.csv test-1.csv test-2.csv test-3.csv

有关拆分索引的详细信息,请参阅

和中的简单表达式