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

来源:4-2 字节流之文件输入流FileInputStream-2

16k闪存大脑3954634

2017-09-11 10:23

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

写回答 关注

4回答

  • 我是叶霖
    2018-05-22 21:21:08

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

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

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

    望采纳QAQ

  • qq_安居旧巷猫患者_0
    2017-10-21 17:05:34

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

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

    就需要循环读取了

  • Queen丶Star
    2017-09-13 06:12:57

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

  • 慕粉1950047581
    2017-09-11 13:01:22

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

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

文件传输基础——Java IO流

为您介绍IO流的使用,以及对象的序列化和反序列化的内容

133755 学习 · 1030 问题

查看课程

相似问题