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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 王德升 中级黑马   /  2012-7-7 17:13  /  1086 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

一:

class MyBufferedText
{  
        public static void main(String[] args)throws IOException
        {
                MyBufferedInputStream bufis = new MyBufferedInputStream(new FileInputStream("C:\\haoting.mp3"));  

                BufferedOutputStream bufos = new BufferedOutputStream(new FileOutputStream("C:\\ting.mp3"));  

                       int ch = 0;  

                       while((ch=bufis.myRead())!=-1)
                {  
                           bufos.write(ch);  //一直不明白这是怎么写入的,到底是通过什么方式写入的?
                }
  
                        bufis.myClose();  

                bufos.myClose();  
        }
}  


class MyBufferedInputStream
{  
        private InputStream in;  

        private byte[] buf = new byte[1024];  

        private int pos =0,count = 0;

        MyBufferedInputStream(InputStream in)
        {  
            this.in = in;  
        }  
  
        public int myRead()
        {  

            if(count==0)
            {  
                count = in.read(buf);  

                if(count<0) //为什么要做这步判断呢?

                    return -1;

                pos = 0;

                byte b = buf[pos];

                count--;  

                pos++;  

                return b&255; //这里与上255是什么意思啊,希望说的具体点,听老毕说的一头雾水啊,!!
            }

            else if(count>0)
            {  
                byte b = buf[pos];

                count--;  

                pos++;  

                return b&255;  
            }  
        }
         
    public void myClose()throws IOException
    {  
        in.close();  
    }  
}  

二:
麻烦跟我细细说下字节流转换成字符流: InputStreamReader

还有字符转换成字符流转换成字节流:OutputStreamWriter

这个我知道,就是不知道怎么去用,怎么去区分??老师说的好多绕来绕去我都昏了,

麻烦大仙给我说说是怎么回事,谢谢了,

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马