Я хотел бы прочитать строку из потока 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 () вызывает чтение мимо данных в буфере: - (
Возможно, мне нужна какая-то комбинация переворота, перемотки, сброса и т. Д., Но я не могу понять это.