バイナリ データをファイルに追加する必要がありますが、このデータの前に xml ヘッダーがあります。ファイル全体が適切な xml ファイルになることはありませんが、次のような適切な xml ヘッダーが必要です。
<EncryptedFileHeader>
<Algorithm>name</Algorithm>
<KeySize>256</KeySize>
<SubblockLength>64</SubblockLength>
<CipherMode>ECB</CipherMode>
<sessionKey>sessionKey</sessionKey>
</EncryptedFileHeader>
*binary data*
私が JAXB マーシャリングで行う xml ヘッダーは簡単で、このバイナリ データを base64 に追加し、xml 内のメモに保存する方が簡単です。しかし、これは手がかりです。base64 で使用されるこのオーバーヘッドの 33% のスペースを節約するために、バイナリとして保存する必要があります。
問題は、このデータを追加し、後でこれを読み返す (シリアル化/逆シリアル化) 方法です。
別の質問は、ドキュメントの最初の行から削除する方法ですか?
私は使用しようとしました:
marshaller.setProperty("com.sun.xml.bind.xmlDeclaration", Boolean.FALSE);
しかし、それは例外をスローします:
javax.xml.bind.PropertyException: 名前: com.sun.xml.bind.xmlDeclaration 値: javax.xml.bind.helpers.AbstractMarshallerImpl.setProperty(AbstractMarshallerImpl.java:358) で false。 bind.v2.runtime.MarshallerImpl.setProperty(MarshallerImpl.java:527)
ありがとう