zoukankan      html  css  js  c++  java
  • IO-ByteArrayInputStream

    java.io

    类 ByteArrayInputStream

    java.lang.Object

    ┗java.io.InputStream

      ┗java.io.ByteArrayInputStream

    所有已实现的接口:

    Closeable

    public class ByteArrayInputStream extends InputStream

    ByteArrayInputStream 包含一个内部缓冲区,该缓冲区包含从流中读取的字节。内部计数器跟踪 read 方法要提供的下一个字节。

    关闭 ByteArrayInputStream 无效。此类中的方法在关闭此流后仍可被调用,而不会产生任何 IOException。

    字段摘要

    protected  byte[] buf

              由该流的创建者提供的 byte 数组。

    protected  int count

              比输入流缓冲区中最后一个有效字符的索引大一的索引。

    protected  int mark

              流中当前的标记位置。

    protected  int pos

              要从输入流缓冲区中读取的下一个字符的索引。

     

    构造方法摘要

    ByteArrayInputStream(byte[] buf)

              创建一个 ByteArrayInputStream,使用 buf 作为其缓冲区数组。

    ByteArrayInputStream(byte[] buf, int offset, int length)

              创建 ByteArrayInputStream,使用 buf 作为其缓冲区数组。

    方法摘要

     int available()

              返回可从此输入流读取(或跳过)的剩余字节数。

     void close()

              关闭 ByteArrayInputStream 无效。

     void mark(int readAheadLimit)

              设置流中的当前标记位置。

     boolean markSupported()

              测试此 InputStream 是否支持 mark/reset。

     int read()

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

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

              将最多 len 个数据字节从此输入流读入 byte 数组。

     void reset()

              将缓冲区的位置重置为标记位置。

     long skip(long n)

              从此输入流中跳过 n 个输入字节。

    从类 java.io.InputStream 继承的方法

    read

    从类 java.lang.Object 继承的方法

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

    字段详细信息

    buf

    protected byte[] buf

    由该流的创建者提供的 byte 数组。元素 buf[0] 到 buf[count-1] 是只能从流中读取的字节;元素 buf[pos] 是要读取的下一个字节。

    pos

    protected int pos

    要从输入流缓冲区中读取的下一个字符的索引。此值应该始终是非负数,并且不应大于 count 值。从输入流缓冲区中读取的下一个字节是 buf[pos]。

    mark

    protected int mark

    流中当前的标记位置。构造时默认将 ByteArrayInputStream 对象标记在位置零处。通过 mark() 方法可将其标记在缓冲区内的另一个位置处。通过 reset() 方法将当前缓冲区位置设置为此点。

    如果尚未设置标记,则标记值是传递给构造方法的偏移量(如果未提供偏移量,则标记值为 0)。

    count

    protected int count

    比输入流缓冲区中最后一个有效字符的索引大一的索引。此值应该始终是非负数,并且不应大于 buf 的长度。它比 buf 中最后一个可从输入流缓冲区中读取的字节位置大一。

    构造方法详细信息

    ByteArrayInputStream

    public ByteArrayInputStream(byte[] buf)

    创建一个 ByteArrayInputStream,使用 buf 作为其缓冲区数组。该缓冲区数组不是复制得到的。pos 的初始值是 0,count 的初始值是 buf 的长度。

    参数:

    buf - 输入缓冲区。

    ByteArrayInputStream

    public ByteArrayInputStream(byte[] buf, int offset, int length)

    创建 ByteArrayInputStream,使用 buf 作为其缓冲区数组。pos 的初始值是 offset,count 的初始值是 offset+length 和 buf.length 中的最小值。该缓冲区数组不是复制得到的。将该缓冲区的标记设置为指定的偏移量。

    参数:

    buf - 输入缓冲区。

    offset - 缓冲区中要读取的第一个字节的偏移量。

    length - 从缓冲区中读取的最大字节数。

     

    方法详细信息

    read

    public int read()

    从此输入流中读取下一个数据字节。返回一个 0 到 255 范围内的 int 字节值。如果因为到达流末尾而没有可用的字节,则返回值 -1。

    此 read 方法不会阻塞。

    指定者:

    类 InputStream 中的 read

    返回:

    下一个数据字节,如果到达流末尾,则返回 -1。

    read

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

    将最多 len 个数据字节从此输入流读入 byte 数组。如果 pos 等于 count,则返回 -1 指示文件结束。否则,读取的字节数 k 等于 len 和 count-pos 中的较小者。如果 k 是正数,则以 System.arraycopy 执行的方式将 buf[pos] 到 buf[pos+k-1] 的字节复制到 b[off] 到 b[off+k-1] 中。将值 k 与 pos 相加并返回 k。

    此 read 方法不会阻塞。

    覆盖:

    类 InputStream 中的 read

    参数:

    b - 存储读入数据的缓冲区。

    off - 目标数组 b 的起始偏移量。

    len - 读取的最大字节数。

    返回:

    读入缓冲区的总字节数,如果由于已到达流末尾而不再有数据,则返回 -1。

    抛出:

    NullPointerException - 如果 b 为 null。

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

    skip

    public long skip(long n)

    从此输入流中跳过 n 个输入字节。如果已到达输入流末尾,则可能会跳过较少的字节。实际跳过的字节数 k 等于 n 和 count-pos 中的较小者。将值 k 与 pos 相加并返回 k。

    覆盖:

    类 InputStream 中的 skip

    参数:

    n - 要跳过的字节数。

    返回:

    跳过的实际字节数。

    available

    public int available()返回可从此输入流读取(或跳过)的剩余字节数。

    返回值是 count - pos,它是要从输入缓冲区中读取的剩余字节数。

    覆盖:

    类 InputStream 中的 available

    返回:

    不受阻塞地从此输入流读取(或跳过)的剩余字节数。

    markSupported

    public boolean markSupported()

    测试此 InputStream 是否支持 mark/reset。ByteArrayInputStream 的 markSupported 方法始终返回 true。

    覆盖:

    类 InputStream 中的 markSupported

    返回:

    如果此输入流实例支持 mark 和 reset 方法,则返回 true;否则返回 false。

    mark

    public void mark(int readAheadLimit)

    设置流中的当前标记位置。构造时默认将 ByteArrayInputStream 对象标记在位置零处。通过此方法可将其标记在缓冲区内的另一个位置处。

    如果尚未设置标记,则标记值是传递给构造方法的偏移量(如果未提供偏移量,则标记值为 0)。

    注:readAheadLimit 对于此类没有意义。

    覆盖:

    类 InputStream 中的 mark

    参数:

    readAheadLimit - 在标记位置失效前可以读取字节的最大限制。

    reset

    public void reset()将缓冲区的位置重置为标记位置。除非已标记了另一个位置,或者在构造方法中指定了一个偏移量,否则该标记位置是 0。

    覆盖:

    类 InputStream 中的 reset

    close

    public void close() throws IOException

    关闭 ByteArrayInputStream 无效。此类中的方法在关闭此流后仍可被调用,而不会产生任何 IOException。

    指定者:

    接口 Closeable 中的 close

    覆盖:

    类 InputStream 中的 close

    抛出:

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

  • 相关阅读:
    Log4net源码分析(一)
    ASP.NET MVC 框架是 .NET 平台 Web 开发的主流,但是并不适合初学者
    详解ASP.NET MVC应用程序请求生命周期
    ELMAH (ASP.NET错误日志处理)使用方法
    ElMAH(ASP.NET错误日志记录与通知)系列文章基础应用篇
    Log4net源码分析(三)
    Log4net 框架系列:log4net日志文件在asp.net中的应用实例记录系统错误
    ELMAH(ASP.NET错误日志记录与通知)系列文章概念篇
    Log4net源码分析(二)
    在VS2010中配制Elmah邮件发送到Gmail
  • 原文地址:https://www.cnblogs.com/zzuLiang/p/4682681.html
Copyright © 2011-2022 走看看