Верблюд: компонент "файл", но только имя файла передается как тело - PullRequest
7 голосов
/ 21 февраля 2012

Я пытаюсь обработать потенциально большие файлы с помощью Camel, и я беспокоюсь о том, что они "помещаются" в тело Camel Message. Есть ли способ, которым я могу просто передать имя (путь) файла в качестве тела сообщения, а затем использовать его в процессоре для чтения с диска?

1 Ответ

9 голосов
/ 22 февраля 2012

Вы можете просто передать экземпляр java.io.File.По сути, это то, что делает файловый компонент Camel сам (хотя он находится внутри WrappedFile, благодаря совместному использованию кода с компонентами ftp).

Конечно, вы также можете просто сохранить имя файла в виде строки изатем из процессора получить доступ к файлу, либо

String name = exchange.getIn().getBody(String.class);
File file = new File(name);
...
FileInputStream fis = new FileInputStream(file);
// read the file from the stream, etc.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...