0

私のアプリケーションでは、添付ファイルを取得する Web サービスを開発しています。ファイルは JaxB を介して DataHandler オブジェクトにマップされ、DataHandler.getInputStream() を介してファイルにアクセスできます。

私の問題はこれです:ファイル属性がWebサービスリクエストに存在するが、ファイルが添付されていない場合でも、DataHandlerオブジェクトとそのgetInputStream().available() = 11バイト(私が推測するヘッダー...? ?)。

inputStream が空であることを知ることができますか?

ありがとう、アロン

4

1 に答える 1

1

それを読み取って、解析する必要があるデータを解析します。答えはそこにあります。

あなたが思うように、ストリームの長さなどはInputStream#available()確かに返されません。場合によっては(偶然に)そうなるかもしれませんが、それに頼るべきではありません。他のスレッドをブロックせずに読み取り可能なバイト数を返すだけです。最後のビットが返されるまで、通常の Java IO の方法でストリームを完全に読み取り、-1受信したデータ全体をインターセプトします。

于 2009-11-30T13:45:29.483 に答える