空の InputStream をどのようにテストしますか? 私は、InputStream がリモート リソースで動作するように設計されていることを知っています。そのため、実際に読み取るまで、そこにあるかどうかを知ることはできません。現在の位置が変更され、mark() を使用してリセットするのは不適切なように思われるため、read() を使用できません。
問題は、read() が -1 を返すかどうかをテストできない場合があることです。これは、ストリームがあり、サードパーティのライブラリがそれを使用している場合、そこに送信する前に空かどうかをテストする必要があるためです。
空の InputStreams とは、これらを意味しますnew ByteArrayInputStream(new byte[0])