BufferedInputStream

  BufferedInputStream:缓冲字节输入流,是一个高级流(处理流),与其他低级流配合使用。

  查看源码可见 BufferedInputStream 没有无参构造方法,它必须传入一个IputStream 一般是FileInputStream。

  /**
  * 创建一个 BufferedInputStream 并保存其参数,即输入流 in,以便将来使用。创建一个内部缓冲区数组并将其存储在
   *buf 中,该buf的大小默认为8192。

   */
  public BufferedInputStream(InputStream in) {
   this(in, DEFAULT_BUFFER_SIZE);
  }
  /**
   * 创建具有指定缓冲区大小的 BufferedInputStream 并保存其参数,即输入流 in,以便将来使用。创建一个长度为
*size 的内部缓冲区数组并将其存储在 buf 中

   */
  public BufferedInputStream(InputStream in, int size) {
   super(in);
   if (size <= 0) {
   throw new IllegalArgumentException("Buffer size <= 0");
   }
   buf = new byte[size];
  }

  常用方法
  //从该输入流中读取一个字节
  public synchronized int read() throws IOException {
   if (pos >= count) {
   fill();
   if (pos >= count)
   return -1;
   }
  return getBufIfOpen()[pos++] & 0xff;
  }
  //从此字节输入流中给定偏移量处开始将各字节读取到指定的 byte 数组中。 
  public int read1(byte[] b,int off,int len) throws IOException{xxxxx}
posted @ 2018-06-29 13:04  张左左  阅读(453)  评论(0编辑  收藏  举报