如下:while((len=in.read(data))!=-1){outputstream.write(data,0,len);}(len=in.read(data))会等于-1吗?什么时候会等于-1?如果不会等于-1,那么这个循环岂不成了死循环了吗?
4 回答
MMTTMM
TA贡献1869条经验 获得超4个赞
查一下API就知道了[quote]public abstract int read()
throws IOException从输入流读取下一个数据字节。返回 0 到 255 范围内的 int 字节值。如果因已到达流末尾而没有可用的字节,则返回值 -1。在输入数据可用、检测到流的末尾或者抛出异常前,此方法一直阻塞。
子类必须提供此方法的一个实现。
返回:
下一个数据字节,如果到达流的末尾,则返回 -1。
抛出:
IOException - 如果发生 I/O 错误。
[/quote]
由类java.io.InputStream定义了该规范,其子类实现时都依循此规范
添加回答
举报
0/150
提交
取消