A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

  1. import java.io.*;

  2. class MyBufferedInputStream
  3. {
  4.         private InputStream in;

  5.         private byte[] buf = new byte[1024*4];
  6.                
  7.         private int pos = 0,count = 0;
  8.        
  9.         MyBufferedInputStream(InputStream in)
  10.         {
  11.                 this.in = in;
  12.         }

  13.         //一次读一个字节,从缓冲区(字节数组)获取。
  14.         public int myRead()throws IOException
  15.         {
  16.                 //通过in对象读取硬盘上数据,并存储buf中。
  17.                 if(count==0)                      //if里面是只执行一次把??????????????
  18.         {
  19.                         count = in.read(buf);                //比如count=1024每次获取的值不都是一样么????等else if执行完,重新执行不又是1024吗?
  20.           if(count<0)
  21.                                 return -1;
  22.                         pos = 0;                                  // pos指针从0开始取
  23.   byte b = buf[pos];               //b里获取一个个     b=a

  24.           count--;                               //1024变成1023         
  25.           pos++;                            //pos=1
  26.           return b&255;                   //返回,
  27.         }
  28.                 else if(count>0)
  29.                 {
  30.                         byte b = buf[pos];        //b里面获取第二个 count=1023,pos=1        b=ab?   

  31.           count--;              //count=1022 ,当count=0时, 在执行if
  32.           pos++;             //pos=2
  33.           return b&0xff;      //b=ab ??
  34.                 }
  35.                 return -1;

  36.         }
  37.         public void myClose()throws IOException
  38.         {
  39.                 in.close();
  40.         }
  41. }
复制代码


1 个回复

正序浏览
支持一下!!!!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马