Camelでファイルにバイト配列を書きたいです。しかし、配列を元に戻すために、行ごとに、または別の区切り記号で書きたいと思います。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 : 必要なファイルは 1 つだけです。そうしないと簡単すぎてしまいます...
編集: out.writeObject メソッドを使用して、ファイルを 1 行ずつ正常に書き込みます (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 でそれらを読むアイデアはありますか?