write和read方法问题
为什么while(n=fis.read(b)!=-1)这个里面,当b是满的时候n是1024?n不应该是记录字节数目的啊,它应该是图片的字节数据不是吗
34
收起
正在回答
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. Java 零基础入门
- 参与学习 人
- 提交作业 3802 份
- 解答问题 11489 个
本阶段带你迈入Java世界,学习Java必备基础知识,基础语法、面向对象思想以及常用工具类的使用。
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星