0

CBC 復号化ループでは、小さい (< 32 バイト) バイト チャンクを扱っているため、ヒープが爆発するため StringBuilder を使用できません。復号化されたバイトを取得し、それらを何らかのバッファー配列にダンプする必要があると考えています。この時点で、これらのバイトから InputStreamReader を設定および設定する方法について混乱しています。この InputStreamReader を設定できる場合は、BufferedReader をラップしたいと思います。次に、BufferedReader から一度に 1 行ずつ読み取る予定です。これは、テキスト処理で一度に 1 行ずつ処理する必要があるためです。このプロセス中にディスクにデータを書き込みたくありません。CBC 復号化ループから取得したバイトをどうするかについて、私は非常に混乱しています。それらは明らかにバッファリングする必要があります (私のテキスト ファイルの 1 行はおそらく復号化されたチャンクの 20 倍のサイズであるため)。仲介者として機能するバッファーについて混乱しています。私は BouncyCastle を使用していますが、現時点ではパズルのピースが原因で問題が発生することはありません。〜初心者の助けをありがとう。

4

1 に答える 1

2

復号化ブロックからバイトを取得し、PipedOutputStream にダンプします。次に、そこから PipedInputStream を作成し、適切にラップして、他のコードにフィードします。

これは、2 つの別々のスレッドで行うのが最適です。1 つでも機能する可能性がありますが、ブロックしないように注意する必要があります (特に読み取り)。

または、独自のカスタム InputStream 実装をデクリプタに書き込むこともできます。

于 2013-03-11T23:51:25.317 に答える