入力ストリームが 1 つあります。まず、これのcrcを取得する必要があります。これは、私が知っている方法です。
CRCUtils.getCRC32(IOUtils.toByteArray(is))
バイト配列から計算できるcrcUtilsのメソッドがあります。しかし、その後、この入力ストリームが再び必要になり、最後に到達するため、前のものを使用できません。では、isのcrcとクローンを取得する方法はありますか?
入力ストリームが 1 つあります。まず、これのcrcを取得する必要があります。これは、私が知っている方法です。
CRCUtils.getCRC32(IOUtils.toByteArray(is))
バイト配列から計算できるcrcUtilsのメソッドがあります。しかし、その後、この入力ストリームが再び必要になり、最後に到達するため、前のものを使用できません。では、isのcrcとクローンを取得する方法はありますか?
あなたはそのようにすることができます:
byte[] byteArr = IOUtils.toByteArray(is);
CRCUtils.getCRC32(byteArr);
InputStream is1 = new ByteArrayInputStream(byteArr);
サポートされている場合は、入力ストリームでマークを使用できます。
ファイルを処理する前にCRC値が必要ない場合は、CRC値FilteredInputStream
を取得するためのいくつかのボーナスメソッドを使用して、読み取ったすべてをCRC32に渡すサブクラスを作成することもできます。