InputStream类中的三种read方法-学习中有发现了一个重要知识惊喜

    转载:https://baijiahao.baidu.com/s?id=1607485209716859447&wfr=spider&for=pc

    InputStream类以及子类中的Read方法

    Read方法

    Read()

    public abstract int read() throws IOException

    从(来源)输入流中(读取的内容)读取数据的下一个字节到(去处)java程序内部中

    返回值为0到255的int类型的值,返回值为字符的ACSII值(如a就返回97,n就返回110).

    如果没有可用的字节,因为已经到达流的末尾, -1返回的值

    运行一次只读一个字节,所以经常与while((len = inputstream.read()) != -1)一起使用

    read(byte [] b )

    public int read(byte[] b) throws IOException

    从(来源)输入流中(读取内容)读取的一定数量字节数,并将它们存储到(去处)缓冲区数组b中

    返回值为实际读取的字节数

    运行一次读取一定的数量的字节数.java会尽可能的读取b个字节,但也有可能读取少于b的字节数.至少读取一个字节

    第一个字节存储读入元素b[0],下一个b[1],等等。读取的字节数是最多等于b的长度。

    如果没有可用的字节,因为已经到达流的末尾, -1返回的值

    如果b.length==0,则返回0

    read( byte [] b , int off , int len)

    public int read(byte[] b, int off, int len, throws IOException)

    读取 len字节的数据从输入流到一个字节数组。

    试图读取多达 len字节,但可能读取到少于len字节。返回实际读取的字节数为整数。

    第一个字节存储读入元素b[off],下一个b[off+1],等等。读取的字节数是最多等于len。k被读取的字节数,这些字节将存储在元素通过b[off+k-1]b[off],离开元素通过b[off+len-1]b[off+k]未受影响。

    read(byte[]b)就是相当于read(byte [] b , 0 , b.length).所以两者差不多.性质一样

    为什么read()无参方法读取一个字节,返回的是一个int类型,而不是一个byte类型?

    因为字节输入流可以操作任意类型的文件,比如图片音频等,这些文件底层都是以二进制形式的存储的,如果每次读取都返回byte,有可能在读到中间的时候遇到111111111(文件的底层按补码来存储的)

    那么这11111111是byte类型的-1,我们的程序是遇到-1就会停止不读了,后面的数据就读不到了,所以在读取的时候用int类型接收,如果11111111会在其前面补上24个0凑足4个字节,那么byte类型的-1就变成int类型的255了这样可以保证整个数据读完,而结束标记的-1就是int类型

    文章来自https://blog.csdn.net/qq_37835596/article/details/76559572

    登录后您可以享受以下权益:

    ×
    评论
    添加红包

    请填写红包祝福语或标题

    红包个数最小为10个

    红包金额最低5元

    当前余额3.43前往充值 >
    需支付:10.00
    成就一亿技术人!
    领取后你会自动成为博主和红包主的粉丝 规则
    hope_wisdom
    发出的红包
    实付
    使用余额支付
    点击重新获取
    扫码支付
    钱包余额 0

    抵扣说明:

    1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
    2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

    余额充值
    程序员都在用的中文IT技术交流社区

    程序员都在用的中文IT技术交流社区

    专业的中文 IT 技术社区,与千万技术人共成长

    专业的中文 IT 技术社区,与千万技术人共成长

    关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

    关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

    客服 返回顶部