我有通过长度标头前面的套接字发送的数据包。因此,每次传输都带有 4 个字节的长度信息,然后是数据包。因此,我必须限制我read()
的永远不要超过长度,以免我不小心读取到下一个数据包。
InputStream in
是输入流,ByteArrayOutputStream byteStream
是我将传入数据包写入的流,是int len
传入传输的长度。
这是我想出的:
for (int i = 0; i < len; i++) {
byteStream.write(in.read());
}
这绝对是可怕的;逐个读取字节。我希望看看是否有更好的方法使用缓冲区来做到这一点(有点类似于复制流的规范方式)。