bytes = in.read(buf,0,buf.length))!=-1 什么意思
while (bytes = in.read(buf,0,buf.length))!=-1) 这个是什么机制的循环 我怎么没看懂 而且bytes的数目还能等于-1 要是能等于-1的话 那第一种代码 不就是错的么
while (bytes = in.read(buf,0,buf.length))!=-1) 这个是什么机制的循环 我怎么没看懂 而且bytes的数目还能等于-1 要是能等于-1的话 那第一种代码 不就是错的么
2016-07-18
我感觉楼上说的有问题,int bs = read(buf,0,buf.length)运行的时候会返回读入缓冲区的字节总数,但是(注意),如果已经到了文件末尾则返回-1,意思就是说,举个楼上一样的例子,我有个1024字节大小的字节数组,要读取一个1500字节大小的数据,首先第一次bs的值等于1024,不等于-1,进入循环打印输出,第二次bs的值等于476,不等于-1,进入循环打印输出,第三次bs的值等于-1,跳出循环,最终是可以打印输出1500数据的全部内容的,在这过程中可以发现有个类似指针的作用,read方法它会一个一个字节轮流读取数据(这是我的理解,仅供参考,如果有理解的错误的地方,也请大神们帮忙指出哈)
举报