给出以下伪代码。我将如何读取给定的数据
答案 0 :(得分:3)
使用DataInputStream让您的生活轻松。
DataInputStream in = new DataInputStream(socket.getInputStream());
short myShortStreamSize = in.readShort();
byte[] payload = new byte[myShortStreamSize];
in.readFully(payload);
答案 1 :(得分:1)
Socket
有getInputStream()
方法。您将使用返回的InputStream
并从中读取myShortStreamSize
个字节到byte[]
,将其转换为表示有效负载大小的int / long,然后读入另一个更大的new byte[payloadSize]
。 1}},有效载荷本身。
答案 2 :(得分:0)
您可以尝试JBBP
@Bin class Struct { byte [] payload; }
@Bin class ParsedStream { Struct [] structs; }
ParsedStream parsed = JBBPParser.prepare("structs[_] { ushort size; byte [size] payload; }").parse(theInStream).mapTo(ParsedStream.class);