import java.io.*;
//包装类。
class MyBufferedInputStream
{
private InputStream in;
private byte[] buf = new byte[1024*4];//定义字节数组。
private int pos = 0,count = 0;//角标(指针),计数器。
MyBufferedInputStream(InputStream in)
{
this.in = in ;
}
//自定义read方法。
public int myRead()throws IOException //调用read方法,要抛出异常 //一次读一个字节,从缓冲区(字节数组)获取。
{
if(count==0)//当count为0的时候,取玩了,再开始存。
{
count = in.read(buf); //count记录个数。通过in对象,读取硬盘上的数据,并存储到buf中。
if (count<0)
return -1;//所以的取玩了,结束。
pos = 0;//每次开始取的时候,pos指针归零。
byte b = buf[pos]; //指针所指的字节。
count--;
pos++;
return b*255; //int对byte转型
}
else if(count>0)//上面取玩第一个,这里接着取。
{
byte b = buf[pos];
count--;
pos++;
return b*0xff; //int对byte转型
}
return -1;
}
public void myClose() throws IOException
{
in.close();
}
}
这是写的自定义字节流缓冲区 哪里出错了??? |
|