黑马程序员技术交流社区

标题: 关于IO流的一个小疑问 [打印本页]

作者: 王利强    时间: 2012-3-18 23:32
标题: 关于IO流的一个小疑问
下面是关于文件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();
        }
作者: 吴超    时间: 2012-3-18 23:41
本帖最后由 吴超 于 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();;//关闭资源
        }
作者: 李飞    时间: 2012-3-19 00:02
1.  数组相当于是一个缓冲区,一个一个的读取字符
2.  当我读够数组长度的字符时,再一次性写入到文件中;否则,读一个字符,再转换写流,在写一次;来回的效率低

就比方:数组就是一个杯子,先一滴一滴的水倒入杯子中,再一次性喝了,比一滴一滴的喝快多了




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