2 qq 27836205 qq_27836205 于 2017.06.23 13:27 提问

java 这种for循环写法 什么意思

图片说明

7个回答

fight_in_dl
fight_in_dl   Ds   Rxr 2017.06.23 13:34
已采纳

循环体的三个部分解释如下:

int iByteLen = raFile.read(e) //循环开始,读取raFile文件中1024个字节数据到e数组中,成功返回读取的字节数,失败返回-1。

iByteLen != -1  //循环判断条件,如上所述,当读取失败时,iByteLen == -1 ,退出循环。当读取成功时,iByteLen != -1 ,满足循环条件,继续循环。

iByteLen = raFile.read(e)  //处理完上一次读取的1024个字节后,再次读取raFile文件中1024个字节数据到e数组中。

用心回答每个问题,如果对您有帮助,请采纳答案好吗,谢谢!

fight_in_dl
fight_in_dl https://docs.oracle.com/javase/7/docs/api/java/io/RandomAccessFile.html#seek(long)
6 个月之前 回复
fight_in_dl
fight_in_dl 是读取下一个1024字节,注意循环体的几句,seek函数移动了文件操作指针,这个指针决定了下一次读写时的位置
6 个月之前 回复
qq_27836205
qq_27836205 那第三个参数读取1024个字节 是重新从头开始读 还是接着第一个条件读的位置开始读 如果是接着第一个条件读的位置开始读 为什么能够接着第一个条件读的位置开始读
6 个月之前 回复
fight_in_dl
fight_in_dl 返回-1,是读取到文件尾,答案中说是读取失败不准确,修正下。
6 个月之前 回复
Liang_da_da
Liang_da_da   2017.06.23 13:34

read(bytes)返回的是个整数,是每次填充给bytes数组的长度。
这个方法在按bytes数组读取文件。不等于-1是因为出现-1就说明文件已经读取结束了。
可以通过这个方法,进行循环读取文件内容,当read返回值为-1的时候,表示文件读取完毕,就可以显示文件内容,进行相应的操作。(百度搜到的)

lihongbiao0610
lihongbiao0610   Rxr 2017.06.23 13:41

和下面的 for(int i=0;i<ByteLen;i++)一个意思啊。
i++意思不就是i=i+1吗。
现在变成了iByteLen =raFile.read(e)

oyljerry
oyljerry   Ds   Rxr 2017.06.23 13:45

就是循环读取数据到e,每次都判断是否读完数据,read返回-1的时候就是文件读取结束了

pangav
pangav   2017.06.25 17:20

关于for循环的灵活运用,初始条件很好理解,变化条件也好理解。
不是说:中间条件判断必须是大于小于这些,只要是条件判断语句都可以的,它就是一个判断。

baidu_39433475
baidu_39433475   2017.07.06 21:50

一般遇到这样的,可以尝试将相同的提取出来, 这样看起来就简单了.

read(new byte[1024]) 每次读取1024字节 下次读取 就是从这次结束位置开始读取的. 当本次未读取到时 则返回 -1

vvcgp
vvcgp   2017.07.11 15:36

这种我一般都会写成

int iByteLen;
while( ( iByteLen = raFile.read(e) ) != -1){ ... }

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!