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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

public int myRead()throws IOException
    {
            //通过in对象读取硬盘上数据,并存储buf中。
            if(count==0)//当取光
            {
                    count=in.read(buf);//往数组里装数据
                    if(count<0)
                            return -1;
                    pos=0;//指针遍历数组
                    byte b=buf[pos];//取了第一个元素
                    count--;
                    pos++;
                    return b&255;
                   
            }
            else if(count>0)
            {
                    byte b = buf[pos];

                        count--;
                        pos++;
                        return b&0xff;
            }return -1;
           
    }

3 个回复

倒序浏览
读取的是二进制数据
回复 使用道具 举报
戴祺 发表于 2015-4-1 20:10
读取的是二进制数据

恩,老师视频里讲的不是很明白,二进制码,后面又讲到11110000110什么的,不懂
回复 使用道具 举报
这个是模拟的java自己的read方法,java提供的方法返回的是int。因为读取MP3是字节流,这就有一个小问题,MP3本身的数据中可能有一个字节为11111111(十进制是-1),这是会造成(len=read())=-1,是读取数据的循环停止。所以在底层放回数据时可以与上255(255的二进制是00000000 00000000 00000000 11111111),此时可以将-1的高3个字节全部变为0,不会造成循环终止,而又不影响MP3的低字节的数据。
回复 使用道具 举报 1 0
您需要登录后才可以回帖 登录 | 加入黑马