Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/320.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何获取字节数?_Java - Fatal编程技术网

Java 如何获取字节数?

Java 如何获取字节数?,java,Java,在分配数组“handsize”的字节大小之前,如何获得字节数,如下所示,因为传入的ByteArray数据以3种不同的大小发送。谢谢 BufferedInputStream bais = new BufferedInputStream(requestSocket.getInputStream()); DataInputStream datainput = new DataInputStream(bais); //need to read the number of bytes her

在分配数组“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); 
你可以用一个,这样你就不用担心了

ByteArrayOutputStream out = new ByteArrayOutputStream();
//write data to output stream
byte[] bytes = out.toByteArray();
你可以用一个,这样你就不用担心了

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

没有办法知道一个套接字上还有多少字节的数据需要接收——知道这就等于千里眼。如果您使用自己的协议进行客户机/服务器通信,则可以在发送实际字节之前,以整数形式发送数据字节数。然后,接收端就会知道需要多少字节。

无法知道套接字上还有多少字节的数据需要接收——知道这就相当于千里眼。如果您使用自己的协议进行客户机/服务器通信,则可以在发送实际字节之前,以整数形式发送数据字节数。然后,接收端将知道需要多少字节。

正如已经指出的,所述的问题是不可能的。但你为什么要知道?为什么不在读取数据时将其存储在一个可变大小的结构中,比如ArrayList?或者甚至在阅读时对其进行处理?

正如已经指出的那样,上述问题是不可能解决的。但你为什么要知道?为什么不在读取数据时将其存储在一个可变大小的结构中,比如ArrayList?或者甚至可以在阅读时对其进行处理?

感谢您的回答,我还没有尝试ByteArrayOutPut流,至于以整数形式发送数据的字节数,这就是我目前正在做的,但我意识到wihch中存在一个问题,发送方正在发送3个不同字节大小的不同消息结构,因此,我收到的数据将处于混乱状态。@k80sg:只需在每个结构之前发送大小即可。这怎么会是“一团糟”?接收器需要知道大小和内容,因此您可能还需要在传输中输入一个值来指示结构的类型。感谢您的回答,我还没有尝试ByteArrayOutPut流,因为它将数据字节数作为整数发送,这就是我目前正在做的,但我意识到wihch中存在一个问题,发送方正在发送3个不同字节大小的不同消息结构,因此,我收到的数据将处于混乱状态。@k80sg:只需在每个结构之前发送大小。这怎么会是“一团糟”?接收器需要知道大小和内容,因此在传输中可能还需要一个指示结构类型的值。