java的输入流的read方法返回的是什么呢?

比如这段代码
bytes是自己定义的比特数组 is是fileinputstream的对象
int length=0;
while((length=is.read(bytes))!=-1){
os.write(bytes,0,length);
}
其中while语句条件里 is.read(bytes)返回的是什么呢?或者说这个方法在干什么?为什么不能等于-1

read(bytes)返回的是个整数,是每次填充给bytes数组的长度。
这个方法在按bytes数组读取文件。不等于-1是因为出现-1就说明文件已经读取结束了。
可以通过这个方法,进行循环读取文件内容,当read返回值为-1的时候,表示文件读取完毕,就可以显示文件内容,进行相应的操作。
温馨提示:内容为网友见解,仅供参考
第1个回答  2012-12-02
返回的应该是你读取的字节数,如果文件内容长度小于bytes长度则返回这个文件长度,当读取下一人数组为空时则返回-1.
第2个回答  2012-12-02
is.read(bytes)返回的是个整数,是每次填充给bytes数组的长度。
这个方法在按bytes数组读取文件。不等于-1是因为出现-1就说明文件已经读取结束了。本回答被提问者和网友采纳
相似回答