fix ByteBuffer issue, finish read method