3

次の問題に対する効率的な解決策を探しています。

org.xml.sax.SAXParseException: プロローグではコンテンツは許可されていません

問題は、(jaxb を使用して) ファイルを非整列化する前に、最初の 3 つの bom バイト (存在する場合) をスキップ (または削除) することです。

最初の 3 バイトをチェックし、その後のすべてを新しいファイルに書き込んで新しいファイルを使用することで動作させることができますが、これは恐ろしく非効率的です。

BOM が存在する場合はファイル ポインターを 3 バイト以上移動しようとしましたが (ポインターの位置を確認しました)、しかし、入力ストリームを jaxb に渡すと、同じ例外がスローされます。私の直感は、ファイル ポインターがリセットされていることです。

誰にもこれについてのアイデアはありますか?

ありがとう

4

1 に答える 1

5

Apache Commons IOInputStreamなどから BOM を削除するデコクターを使用します。BOMInputStream

于 2013-08-08T14:35:10.833 に答える