- class MyBufferedInputStream
- {
- private InputStream ips;
- byte[] buf=new byte[1024];
- int pos=0,count=0;
- MyBufferedInputStream(InputStream ips)
- {
- this.ips=ips;
- }
- //一次读一个字节,从缓冲区获取
- public int myRead()throws IOException
- {
- if(count==0)
- {
- //将读取到的字节存入buf数组,并将个数赋值给count计数器。
- count=ips.read(buf);
- if(count<0)//当然有可能小于零,读到第1024个之后,count自减到零,再读,后面没有数据了,所以,就是-1了。
- return -1;
- pos=0;//自增到1024之后清零
- byte b=buf[pos];
- pos++;
- count--;
- return b&255;
- }
- else if(count>0)
- {
- byte b=buf[pos];
- pos++;
- count--;
- return b&0xff;
- }
- return -1;
-
- }
- public void myClose()throws IOException
- {
- ips.close();
- }
- }
复制代码 在myRead方法中,if和else中已经把情况都考虑到了,也就是一定会有返回值,为什么最后还要加一个return -1呢?不返回,编译失败。
隐隐感到和函数的语法有关,但是真心是小白的程度,望大神勿喷。。
|