当前位置: 代码迷 >> J2SE >> java网络读取碰到-1的疑惑
  详细解决方案

java网络读取碰到-1的疑惑

热度:134   发布时间:2016-04-23 20:16:30.0
java网络读取遇到-1的疑惑
java网络编程读取网络数据时,可以按字节一直读,如果读到字节的值等于-1,则结束,因为-1表明对方关闭了连接。

但是,如果网络数据是一个二进制流,流中间有一个字节的值就是-1,难道读到这个-1后就认为读完了而不读了?
------解决思路----------------------
楼主多虑了,返回的值的范围为0到255,所以不会出现你所说的中间结果是-1的情况
------解决思路----------------------
read
public int read()
         throws IOException从类 InputStream 复制的描述 
从输入流中读取数据的下一个字节。返回 0 到 255 范围内的 int 字节值。如果因为已经到达流末尾而没有可用的字节,则返回值 -1。在输入数据可用、检测到流末尾或者抛出异常前,此方法一直阻塞。 
子类必须提供此方法的一个实现。 


指定者:
类 InputStream 中的 read
返回:
下一个数据字节;如果到达流的末尾,则返回 -1。 
抛出: 
IOException - 如果发生 I/O 错误。
另请参见:
portable 包中有关未实现特性的注释
  相关解决方案