write和read方法问题

write和read方法问题

为什么while(n=fis.read(b)!=-1)这个里面,当b是满的时候n是1024?n不应该是记录字节数目的啊,它应该是图片的字节数据不是吗

正在回答

登陆购买课程后可参与讨论,去登陆

1回答

同学你好,1、public int read(byte[] b)是从输入流中将 b.length(数组长度)个字节的数据读入一个 byte 数组中,参数b ->作为 存储读取数据的缓冲区。 而返回值则是读入缓冲区的字节总数。

read()和read(byte[] b) 这两个方法的返回值所代表的含义是不同的。

    2、这里执行的过程可以这样理解:调用read(b)方法,参数传入一个字节数组,此时把读到的内容都存入这个byte数组中。然后调用write方法把数组中的内容写出来(同时数组被清空了),依次循环,重复上面操作。直到最后一轮循环用n记录长度从0读到n刚好读完。(前面循环n都是数组长度1024)。

如果我的回答解决了你的疑惑,请采纳!祝学习愉快!

问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师