我想從TCP數據流中讀取一個字符串,字符長度後面跟着實際數據。在Python中,我會做Java NIO:讀取可變大小的數據塊
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()調用read 過去的緩衝區中的數據:-(
我可能需要一些組合的翻轉,倒帶,復位等,但我不知道它。
什麼樣的對象是'stream'在Java的例子嗎? – Bkkbrad 2009-08-22 21:01:41
這是一個SocketChannel。 – 2009-08-22 22:08:22