System.out.println(" @ bBuffer = " + bBuffer.capacity());
headerBuffer.rewind();
socketChannel.write(headerBuffer);
int writen = socketChannel.write(bBuffer);
System.out.println(" @ writen = " + writen);
bBuffer
タイプのオブジェクトであり、それは(画像ファイルです)ByteBuffer
から来ました。FileChannel.map()
クライアントでこの画像ファイルを受け取ったとき、それは完全な画像ではなく、画像の約半分が欠落していました。そこで、いくつかの統計をコンソールに出力して、書き込まれたバイト数を確認しました。出力は次のとおりです。
@ bBuffer = 319932
@ writen = 131071
残りのバイトはどうなりましたか? (319923 - 131071) バイトが不足しているようです。
ファイルサイズやバッファ容量に関係なく、written
等しい場合もあります。bBuffer.capacity()