fis.read()函数的问题

fis.read()函数的问题

我想请问,fis.read() 这个函数返回的值n是什么,为什么用 fos.write(b,0,n)要用这个n来做第三个参数,一直没搞懂。

正在回答

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

1回答

同学你好,

1、FileInputSteam类的read(byte[] b)方法是从输入流中将最多b.length个字节的数据读入一个byte数组中。返回读入缓冲区的字节总数,如果因为已经到达文件末尾而没有更多的数据,则返回-1。n是实际读取的字节数。

2、write(byte[] b, int off, int len)方法是将指定byte数组中从off开始的len个字节写入到文件。所以fos.write(b,0,n)是将字节数组b中前n个字节写入到文件。

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

  • 谢谢老师,我还想请问下,如果我想读取一个input,存放到数组b中,但是数组b容量不够存input中所有字节 会发生什么情况?
    2020-07-01 11:31:29
  • 同学你好,比如字节数组b长度为10,那么如果文件中有12个字节数据,调用read(byte[] b)方法读取了10个字节,数组读满了,此时方法会返回10,代表读取10个字节。如果还想读取剩下的2个字节应该再调用一次read(byte[] b),这时方法会返回2,代表读取到2个字节。 如果我的回答解决了你的疑惑,请采纳!祝学习愉快!
    2020-07-01 13:39:47
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

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

在线咨询

领取优惠

免费试听

领取大纲

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