当前位置: 代码迷 >> J2SE >> JAVA中inputstream类 read()函数有关问题,一个流结束的标志是
  详细解决方案

JAVA中inputstream类 read()函数有关问题,一个流结束的标志是

热度:7175   发布时间:2013-02-25 21:54:32.0
JAVA中inputstream类 read()函数问题,一个流结束的标志是?
public abstract int read()
                  throws IOException
This method blocks until input data is available, the end of the stream is detected, or an exception is thrown.

如红色部分所示,它所说的流的结束标志是什么?
至于为什么读取文件的时候不会读取到-1,
你得看看inputStream类的read()的方法的返回值!改方法读取文件的一个字节,可是返回类型却是int型!
它在读取的字节前是补了24个0,这样就不会和结束标记-1(即1111-1111 1111-1111 1111-1111 1111-1111)相冲突了!
至于为什么-1定义为结束标记!这个是惯例~~~如果另外的数据没有到达,接收端的read方法会一直等待……,只有客户端读到文件结尾的时候,才会向服务端传递结束标志-1!
  相关解决方案