黑马程序员技术交流社区

标题: 关于自定义字节流缓冲区的相关问题 [打印本页]

作者: 小川行    时间: 2015-3-22 01:07
标题: 关于自定义字节流缓冲区的相关问题
用以下代码来说明
import java.io.IOException;
import java.io.InputStream;

/**
* 本类是自定义一个字节流缓冲区
*
*/
public class MyBufferedInputStream  {
        private InputStream in;
        int pos=0,count=0;
        byte[] buf=new byte[1024];
        public  MyBufferedInputStream(InputStream in){
                this.in=in;
        }
        //定义读取一个字节的方法
        public int myRead()throws IOException{
                if(count==0){
                        count=in.read(buf);
                        if(count<0)
                                return -1;
                        pos=0;
                        byte b=buf[pos];
                        count--;
                        pos++;
                        return b&255;//将byte类型提升为int类型,&上255就是保证最低8位保证不变
                }
                if(count>0){
                        byte b=buf[pos];
                        count--;
                        pos++;
                        return b&255;
                }
                return -1;
        }
}
在上面的返回数据b中,将类型自动提升int类型,返回数据需要&上255,既保持了byte数据的最低8不变,保证了数据的有效性,同时也保证了,不会连续出现8个1的情况,是read方法不会再没有读完数据之前返回-1的情况发生。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2