如何获得字节数?

时间:2010-03-23 02:41:07

标签: java

如何在分配数组'handsize'的字节大小之前获取字节数,如下所示,因为传入的ByteArray数据以3种不同的大小发送。感谢。

BufferedInputStream bais = new  

BufferedInputStream(requestSocket.getInputStream()); 

DataInputStream datainput = new DataInputStream(bais); 

//need to read the number of bytes here before proceeding.

byte[] handsize = new byte[bytesize];  

datainput.readFully(handsize); 

3 个答案:

答案 0 :(得分:3)

您可以使用ByteArrayOutputStream,然后您就不必担心了。

ByteArrayOutputStream out = new ByteArrayOutputStream();
//write data to output stream
byte[] bytes = out.toByteArray();

答案 1 :(得分:0)

没有办法知道套接字上还有多少字节的数据被接收 - 知道这就等于了千里眼。如果您使用自己的协议进行客户端/服务器通信,则可以在发送实际字节数之前将数据的字节数作为整数发送。然后接收方将知道预期的字节数。

答案 2 :(得分:0)

正如已经指出的那样,所述的问题是不可能的。但为什么你需要知道?为什么不在读取数据时将数据存储在可变大小的结构中,如ArrayList?或者甚至可以在阅读时处理它?<​​/ p>