黑马程序员技术交流社区

标题: 字符的写入!!!! [打印本页]

作者: 小黑-张颖    时间: 2011-9-5 06:20
标题: 字符的写入!!!!
class Copy
{
       
        public static void copy(String from, String to)
        {
                FileReader fr=null;
                FileWriter fw=null;
                try
                {
                        fr=new FileReader(from);
                        fw=new FileWriter(to);
                        char[] cbuf=new char[1024];
                        int length;
                        while((length=fr.read(cbuf))!=-1)
                        {
                                fw.write(cbuf,0,length);
                        }
                }catch(Exception e)
                {
                        e.printStackTrace();
                }
                finally{
                        try{fr.close();
                        fw.close();
                }catch(Exception e)
                {
                        e.printStackTrace();
                }
                }
        }
}

在本文加粗的部分,length=fr.read(cbuf)的意思是把fr中的内容读入到数组cbuf中,然后写入到输出流。但是这里把内容读到数组中是一次性读的还是怎么读的。
作者: 匿名    时间: 2011-9-5 06:41
看一下这个帖子,大概就明白了
[url]http://bbs.itheima.com/thread-1343-1-1.html[/url]
作者: 匿名    时间: 2011-9-5 10:10
可以这样理解,你要读的数据是小水滴,cbuf数组是一个桶,这个桶多大就看你将这个数组设置多大,read(cbuf)就是往里面储水,等到cbuf这个桶的水满了再給write拿去用,wirte是有多少用多少,用到没就给read重新装。
作者: 匿名    时间: 2011-9-5 13:10
是一个一个读 每次循环 都会读一个 然后read会自动移到下一个去 再循环到那的时候 又把下一个读过来 然后read又会去下下个准备读 就是这样 以前我也问过这问题 等读完最后一个的时候 read就会返回个 - 1了 所以循环也就停止了:lol




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