老师有个问题

老师有个问题

os.write(b, 0, len)从0开始,从b字节数组写入len字节到该文件输出流。 

那么while((len=is.read(b))!=-1)中 ,是干什么用的

正在回答

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

3回答

同学你好,这里的len定义时为0,如:

http://img1.sycdn.imooc.com//climg/5f05755a09bf891009600331.jpg

read()方法的返回值len是读入缓冲区的字节总数。

os.write(b,0,len)则是从b字节中写入len字节到文件输出流。

祝:学习愉快~

好帮手慕阿满 2020-07-08 11:02:05

同学你好,len=is.read(b)是从输入流中读取数据存放到b数组中。read()方法返回值len是读取到的字节总数,然后判断len是否为-1,如果是-1,表示读取到文件末尾。

祝:学习愉快~

  • 提问者 慕仙8246817 #1
    那本身len已经有读取了,为什么还要后面的os.write(b, 0, len)呢
    2020-07-08 11:11:16
好帮手慕阿满 2020-07-08 09:53:23

同学你好,while((len=is.read(b))!=-1)用来判断是否读到文件的末尾。如果没有读取到文件末尾,则继续循环读取。

祝:学习愉快~

  • 提问者 慕仙8246817 #1
    那它有个len=is.read(b)是干什么用的
    2020-07-08 10:43:18
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

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

在线咨询

领取优惠

免费试听

领取大纲

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