2012-12-03 26 views
1

读取命令是否在填充数据时检查缓冲区的大小,还是由于缓冲区不够大而导致数据丢失?换句话说,如果有10个字节的数据可供读取,服务器是否会继续存储剩余的2个字节的数据直到下一次读取。可否InputSteam.read溢出缓冲区

我只是以8为例来夸大情节。只是因为你没有给它足够的空间让所有可用的字节

InputStream stdout; 
... 
while(condition) 
{ 
    ... 
    byte[] buffer = new byte[8]; 
    int len = stdout.read(buffer); 
} 

回答

3

不,read()不会丢失任何数据。

这里不清楚“服务器”是什么意思,但是10字节消息的最后两个字节在第一次读取后可用。 (或者可能,第一个read()只会读取前六个字节,例如仍然有四个字节需要读取。)