次のコードがあります。
javax.xml.bind.Marshaller m = ...
java.io.OutputStream outputStream = ...
Object jaxbElement = ...
m.marshal(jaxbElement, outputStream);
それは正常に動作します。
次のコードもあります。
javax.xml.bind.Marshaller m = ...
java.io.BufferedWriter writer = ...
Object jaxbElement = ...
m.marshal(jaxbElement, writer);
この場合、marshal の呼び出しを実行すると、次の例外が発生します。
javax.xml.bind.MarshalException
- with linked exception:
[java.io.IOException: Unrecognizable signature: "<?xml version="1.0" e".]
どちらの場合も jaxbElement は同じです。
最初の例は機能するのに、2 番目の例は失敗するのはなぜですか?