【发布时间】:2009-08-22 20:08:39
【问题描述】:
我想从一个给定字节长度的 TCP 流中读取一个字符串,然后是实际数据。在 Python 中,我会这样做
length = ord(stream.read(1))
data = stream.read(length)
我如何在 Java NIO 中做同样的事情?我有一个缓冲区(容量为 257)
stream.read(buffer); // cannot specify a size here
int length = buffer.get();
byte[] data = new byte[length];
buffer.get(data);
不幸的是,这不起作用:get() 调用读取 过去 缓冲区中的数据 :-(
我可能需要一些翻转、倒带、重置等的组合,但我想不通。
【问题讨论】:
-
在您的 Java 示例中,
stream是什么类型的对象?