为了账号安全,请及时绑定邮箱和手机立即绑定

为什么一次无法容纳下的时候就要用while循环

in,read(buf,0,buf.length)不是一次性读完吗?为什么还要使用while循环并且用0xff

正在回答

4 回答

0到buf.length的长度是你定义的byte数组的长度

你一次性最多读取的字节长度是byte数组长度,但是你的文件字节数往往是多于你定义的byte数组长度

所以就用到了for循环,0xff是取低八位,八位为一个字节!!!

望采纳QAQ

0 回复 有任何疑惑可以回复我~

in,read(buf,0,buf.length) 

这个方法的调用只会读取buf。length个字节  如果文件内容大于这个字节数量的话 一次性就读不完了

就需要循环读取了

0 回复 有任何疑惑可以回复我~

for循环中的bytes是限定了所能存储的数据大小的,如果读取到的字节大小超过了你循环中的大小,那么后面的数据就读取不到了。 但是利用while循环,只要In.read() 不是-1,程序就会一直执行,一直读取数据

0 回复 有任何疑惑可以回复我~

数据很有可能比你那个buf字符数组大的多 不只一个length有可能千千万万个length  不循环,怎么读的完。

oxff是取低八位,因为读写都是以字节为单位的,而8位就是一个字节。

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

为什么一次无法容纳下的时候就要用while循环

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信