ソケットの DataInputStream を使用して非常に大きなデータを読み取る方法 データが String 形式で、長さが 1,00,000 文字を超える場合。
また、JavaでSocketChannelを使用してそのビッグデータを書き込む方法は?
問題は、データがチャンクで到着することです。パケット サイズが制限されているか、DataInputStream の内部バッファが 40k しかない可能性があります。わかりませんが、それは問題ではありません。いずれにせよ、1000000 バイトすべてが一度に到着するわけではありません。したがって、それを期待するようにプログラムを書き直す必要があります。受信した小さなチャンクを読み取り、それらを別の byte[1000000] 変数に格納する必要があります (最後のバイト インデックスの場所を追跡します)。ソケットの読み取りが完了するまでループを続けます。次に、内部変数を操作できます。