猿问

关于一道while循环的问题

如下:
while((len=in.read(data))!=-1){
outputstream.write(data,0,len);
}
(len=in.read(data))会等于-1吗?什么时候会等于-1?如果不会等于-1,那么这个循环岂不成了死循环了吗?

HUX布斯
浏览 462回答 4
4回答

汪汪一只猫

当读到文件结尾 即EOF时返回-1

MMTTMM

查一下API就知道了[quote]public abstract int read()throws IOException从输入流读取下一个数据字节。返回 0 到 255 范围内的 int 字节值。如果因已到达流末尾而没有可用的字节,则返回值 -1。在输入数据可用、检测到流的末尾或者抛出异常前,此方法一直阻塞。 子类必须提供此方法的一个实现。返回:下一个数据字节,如果到达流的末尾,则返回 -1。 抛出: IOException - 如果发生 I/O 错误。[/quote]由类java.io.InputStream定义了该规范,其子类实现时都依循此规范
随时随地看视频慕课网APP

相关分类

Java
我要回答