Charset charset = Charset.forName("UTF-8");
ByteBuffer bb = ByteBuffer.allocate(1024);
while (true) {
socketChannel.read(bb);
bb.flip();
CharBuffer cb = charset.decode(bb);
while (cb.hasRemaining()) {
System.out.print(cb.get());
}
}

こんなかんじで、ネットワークから取得した文字を永遠と出力したいのですが、
この場合、1024byte目に2byte文字が来るとその文字は正常にデコードされないようです。
なんかいい解決法はないでしょうか