0

我有一个简单的路线,我将一些字符串写入输出文件,然后尝试附加原始文件的内容。但它会忽略并覆盖文件。

from("file://inputFolder")
    .routeId("InputFolderToTestSedaRoute")
    .setProperty("myFileConsumedBody", simple("${body}"))
    .setBody(constant("FIRST LINE!"))
    .to("file://{{outputFolder}}")
    .setBody(simple("${exchangeProperty.myFileConsumedBody}"))
    .log("*** STEP 100: ${headers} :***")
    .delay(10000)
    .to("file://outputFolder?fileExist=Append")
    ;

我增加了延迟来观察会发生什么。

  1. 如果有一个名为 myFile.txt 的输入文件,Camel 会按预期选择该文件。
  2. 它将文件保存到代码中的客户交换属性中。
  3. 它打开一个名为 myFile.txt 的文件并写入内容“FIRST LINE!” 在其中并等待延迟到期。
  4. 我可以打开并验证内容,一切看起来都不错。
  5. 一旦延迟到期,Camel 会用它从输入文件夹中选择的原始内容覆盖文件 myFile.txt(即使我已经要求 Camel 追加)。

我在这里做错了吗?不确定这是否特定于 Windows 10。我使用的是 Camel 版本 2.24.1。谢谢你的时间。

4

1 回答 1

2

这是版本中修复的错误CAMEL-141272.24.3。您可以升级,或使用带有charset选项的解决方法。

.to("file://outputFolder?fileExist=Append&charset=utf-8")
于 2020-09-17T15:45:29.870 回答