Apache Camel создает два отдельных файла с одинаковым именем, но с разным расширением - PullRequest
0 голосов
/ 29 октября 2018

Я хочу создать два файла с одинаковым именем, но с разным расширением, в основном под кодом, где я могу создать файл abc.dat, в то же время я хочу создать другой файл ex abc.txt, который будет пустым в в том же месте, что и abc.dat:

from("file:C:\\input?filter=#testFilter").split(body().tokenize("\n")).
streaming().setHeader(Exchange.FILE_NAME,simple(newFileName+".dat")).bean(LineParser.class, "process").to("file:C:\\output"+ Constants.getMapping().get(argumentName)+"?fileExist=Append");

спасибо заранее.

Ответы [ 2 ]

0 голосов
/ 30 октября 2018

Чтобы создать второй пустой файл в той же директории, используйте опцию donefileName с помощью языка верблюжьих файлов (требуется toD ).

from("file:C:\\input?filter=#testFilter")
    .split(body().tokenize("\n"))
    .streaming()
    .setHeader(Exchange.FILE_NAME,simple(newFileName+".dat"))
    .bean(LineParser.class, "process")
    .toD("file:C:\\output"+ Constants.getMapping().get(argumentName)+"?fileExist=Append&donefileName=${file:name.noext}.txt")

p.s. ${file:name.noext} означает abc часть из имени файла данных abc.txt

0 голосов
/ 29 октября 2018

На самом деле вам нужно иметь две конечные точки, которые будут выполнять одну и ту же операцию, создавая файл с другим расширением. Используя, чтобы вы могли достичь этого. Перед этим вы должны сохранить содержимое тела в свойстве, чтобы избежать потери содержимого файла после первой конечной точки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...