Java1.8的Inputstream的方法

Inputstranm类是抽象类是表示输入字节流的所有类的超类

 

    • Modifier and TypeMethod and Description
      intavailable()

      返回从该输入流中可以读取(或跳过)的字节数的估计值,而不会被下一次调用此输入流的方法阻塞。

      voidclose()

      关闭此输入流并释放与流相关联的任何系统资源。

      voidmark(int readlimit)

      标记此输入流中的当前位置。

      booleanmarkSupported()

      测试这个输入流是否支持 markreset方法。

      abstract intread()

      从输入流读取数据的下一个字节。

      intread(byte[] b)

      从输入流读取一些字节数,并将它们存储到缓冲区 b

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

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

      voidreset()

      将此流重新定位到上次在此输入流上调用 mark方法时的位置。

      longskip(long n)

      跳过并丢弃来自此输入流的 n字节数据。

对red方法精讲该方法用于对数据的读取有3个重载的方法分别如下:

      • public abstract int read() throws IOException
        从输入流读取数据的下一个字节。 值字节被返回作为int范围0255 。 如果没有字节可用,因为已经到达流的末尾,则返回值-1 。 该方法阻塞直到输入数据可用,检测到流的结尾,或抛出异常。

        一个子类必须提供这个方法的一个实现。

        结果

        数据的下一个字节,如果达到流的末尾, -1

        异常

        IOException - 如果发生I / O错误。

      • read

        public int read(byte[] b)
                 throws IOException
        从输入流读取一些字节数,并将它们存储到缓冲区b 。 实际读取的字节数作为整数返回。 该方法阻塞直到输入数据可用,检测到文件结束或抛出异常。

        如果b的长度为零,则不会读取字节并返回0 ; 否则,尝试读取至少一个字节。 如果没有字节可用,因为流在文件末尾,则返回值-1 ; 否则,读取至少一个字节并存储到b

        第一个字节读取存储在元素b[0] ,下一个字节存入b[1]等等。 读取的字节数最多等于b的长度。 令k为实际读取的字节数; 这些字节将存储在元素b[0]b[ k -1] ,使元素b[ k ]b[b.length-1]不受影响。

        read(b)用于类方法InputStream具有相同的效果为:

           read(b, 0, b.length)  

        参数

        b - 读取数据的缓冲区。

        结果

        读取到缓冲区的总字节数,或者如果没有更多的数据,因为已经到达流的末尾,则是 -1

        异常

        IOException - 如果由于文件结尾以外的任何原因,如果输入流已关闭,或者发生其他I / O错误,则无法读取第一个字节。

        NullPointerException - 如果 bnull

      • read

        public int read(byte[] b,
                        int off,
                        int len)
                 throws IOException
        从输入流读取len字节的数据到一个字节数组。 尝试读取多达len个字节,但可以读取较小的数字。 实际读取的字节数作为整数返回。

        该方法阻塞直到输入数据可用,检测到文件结束或抛出异常。

        如果len为零,则不会读取字节并返回0 ; 否则,尝试读取至少一个字节。 如果没有字节可用,因为流是文件的-1则返回值-1 ; 否则,读取至少一个字节并存储到b

        第一个字节读取存储在元素b[off] ,下一个字节存入b[off+1] ,等等。 读取的字节数最多等于len 。 令k为实际读取的字节数; 这些字节将存储在元素b[off]b[off+ k -1] ,使元素b[off+ k ]b[off+len-1]不受影响。

        在每种情况下,元件b[0]b[off]和元件b[off+len]b[b.length-1]不受影响。

        read(b, off, len)类方法InputStream简单地调用该方法read()反复。 如果第一个这样的呼叫产生一个IOException ,那个异常从呼叫返回到read(b, off, len)方法。 如果任何后续调用read()导致IOException ,则异常被捕获并被视为文件的结尾; 读取到该点的字节被存储到b ,并且返回异常发生前读取的字节数。 该方法的默认实现将阻塞,直到所请求的输入数据len已被读取,文件结束被检测到或异常被抛出为止。 鼓励子类提供更有效的方法实现。

        参数

        b - 读取数据的缓冲区。

        off - 写入数据的数组 b中的起始偏移量。

        len - 要读取的最大字节数。

        结果

        读取到缓冲区的总字节数,如果没有更多的数据,因为已经到达流的末尾,那么 -1

        异常

        IOException - 如果由于文件结束之外的任何原因,或者输入流已关闭,或者发生其他I / O错误,则无法读取第一个字节。

        NullPointerException - 如果 bnull

        IndexOutOfBoundsException - 如果 off为负数, len为负数,或 len大于 b.length - off

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值