我想用 Camel 在文件中写一个字节数组。但是,为了取回我的数组,我想逐行编写它们,或者使用另一个分隔符。如何用骆驼做到这一点?
from(somewhere)
.process(new Processor() {
@Override
public void process(final Exchange exchange) throws Exception {
final MyObject body = exchange.getIn().getBody(MyObject.class);
byte[] serializedObject = MySerializer.serialize(body);
exchange.getOut().setBody(serializedObject);
exchange.getOut().setHeader(Exchange.FILE_NAME, "filename");
}
}).to("file://filepath?fileExist=Append&autoCreate=true");
或者有人有其他方法可以让他们回来吗?
PS:我只需要一个文件,否则就太容易了...
编辑: 我成功地使用 out.writeObject 方法逐行编写了我的文件(感谢 Petter)。我可以阅读它们:
InputStream file = new FileInputStream(FILENAME);
InputStream buffer = new BufferedInputStream(file);
input = new ObjectInputStream(buffer);
Object obj = null;
while ((obj = input.readObject()) != null) {
// Do something
}
但我无法用骆驼拆分和阅读它们。你有什么想法用 Camel 阅读它们吗?