Я внедрил декомпрессор bz2 с помощью библиотеки commons-compress Apache для распаковки файлов bz2 с верблюдом ниже определенной точки в структуре каталогов в файловой системе. Я взял имя файла, чтобы распаковать из заголовка CamelFileName, открыл файл с моим декомпрессором и поместил распакованный файл обратно в тот же каталог. Он работает нормально. Метод process(), который вызывает сокращенный множитель декомпрессора, сокращен; этот процессор вызывается для выполнения всех необходимых файлов по маршруту верблюжьего:CamelFileName против тела сообщения, операции с файлом
public void process(Exchange exchange) throws Exception {
LOG.info(" #### BZ2Processor ####");
BZ2 bz2 = new BZ2();
String CamelFileName = exchange.getIn().getHeader("CamelFileName", String.class);
bz2.uncompress(CamelFileName);
}
Я думаю, что было бы лучше, если бы я взять файл из тела сообщения. Как бы вы это реализовали?
Спасибо. Мне нужно закрыть поток или оставить его открытым, и Camel позаботится об этом? Лучше всего было бы, если бы вы могли опубликовать образец кода. – Tamas
См. Мое редактирование. –
Большое спасибо за сообщение! Я буду использовать поток, поскольку у меня есть большие файлы. – Tamas