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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 王利强 中级黑马   /  2012-3-18 23:32  /  1837 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

下面是关于文件copy的一小段代码,在单个字符存取与字符数组存取这两种方法在效率问题上有点疑问
,谁能给我详细地解释下,我只知道字符数组存取效率高,但不是特别清楚中间过程的对比,毕老师讲了没有听懂
                                 FileReader fr=new FileReader("demo.txt");
                FileWriter fw=new FileWriter("demo1.txt");
                char[] ch=new char[1024];
                int num=0;
                while((num=fr.read(ch))!=-1)
                        fw.write(ch,0,num);
                fr.close();
                fw.close();
        }

2 个回复

倒序浏览
本帖最后由 吴超 于 2012-3-18 23:55 编辑

  FileReader fr=new FileReader("demo.txt");
                FileWriter fw=new FileWriter("demo1.txt");
                char[] ch=new char[1024];//定义一个缓冲区,1024为存放大小(可以自己定义大小)     就像你用筷子吃饭和用勺子挖,那个更多呢~
                int num=0;
                while((num=fr.read(ch))!=-1)//查看API-------read方法
                        fw.write(ch,0,num);
                fr.close();//关闭资源
                fw.close();;//关闭资源
        }
回复 使用道具 举报
1.  数组相当于是一个缓冲区,一个一个的读取字符
2.  当我读够数组长度的字符时,再一次性写入到文件中;否则,读一个字符,再转换写流,在写一次;来回的效率低

就比方:数组就是一个杯子,先一滴一滴的水倒入杯子中,再一次性喝了,比一滴一滴的喝快多了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马