Je souhaite lire une chaîne d'un flux TCP donné avec une longueur d'octet suivie des données réelles. En Python, je le feraisJava NIO: lecture de blocs de taille variable
length = ord(stream.read(1))
data = stream.read(length)
Comment faire la même chose dans Java NIO? Ce que j'est un tampon (capacité 257)
stream.read(buffer); // cannot specify a size here
int length = buffer.get();
byte[] data = new byte[length];
buffer.get(data);
Malheureusement, cela ne fonctionne pas: le get() appels lu passé les données dans la mémoire tampon :-(
j'ai probablement besoin une combinaison de flip, rewind, reset, etc., mais je ne peux pas le comprendre
Quel genre d'objet est 'stream' dans votre exemple Java? – Bkkbrad
C'est un SocketChannel. –