黑马程序员技术交流社区

标题: 关于IO流和递归 [打印本页]

作者: 朱朱生    时间: 2015-9-2 22:01
标题: 关于IO流和递归
递归_总结
递归
        (1)方法定义中调用方法本身的现象。
                举例:老和尚给小和尚讲故事,我们学编程。
        (2)递归的注意事项:
                A:一定要有出口,否则死递归。
                B:次数不能过多,否则内存溢出。
                *****构造方法不能递归调用*****
        (3)案例:(面试可能会有,今天作业题)
                A:递归求8的阶乘
                B:递归求数列第二十项
需求:用递归求下列数列的第二十项的值:
1,1,2,4,7,13,24...
                C:递归遍历指定目录(你们写Java代码的目录)的文件绝对路径
                D:递归删除带内容的目录(把你们写Java代码的目录复制一份来练习删除)
字符流总结
IO(掌握)
        (1)IO流的分类:
                A:字节流
                        字节输入流        InputStream
                        字节输出流        OutputStream
                B:字符流
                        字符输入流        Reader --- FileReader
                        字符输出流        Writer  --- FileReader

        (2)FileWriter写入数据
                步骤:
                        A:创建字符输出流对象
                        B:调用写入数据方法,并刷新缓冲区
                        C:释放资源
                代码体现:
                        FileWriter fw = new FileWriter("a.txt");
                        fw.write("hello,io");
                        fw.flush();
                        fw.close();
                问题?
                        A:创建字符输出流对象做了几件事情?
                         a:创建字符输出流对象
             b:调用对象的写入数据方法,并刷新缓冲区
                         c:释放资源
                        B:写数据完毕后,为什么要刷新?
                        C:为什么要close()?
             1:让流对象变成垃圾
                         2:通知系统去释放和文件相关的资源
                        D:flush()close()的区别?
                         flush():只刷新缓冲区,流对象还可以继续使用。
                              close():先刷新缓冲区,在关闭流对象。流对象不可以继续被使用。
                        E:怎么实现数据换行?
                         给出换行符
                         windows:\r\n
                         linu:\n
                         mac:\r
                        F:怎么实现数据追加写入?
                        构造时用带两个参数的
                        public FileWriter(String fileName,true){}
        (3)FileReader读取数据
                步骤:
                        A:创建字符输入流对象
                        B:调用读取数据方法,并显示
                        C:释放资源
                代码体现:
                        FileReader fr = new FileReader("a.txt");
                       
                        //方式1
                        //一次读取一个字符
                        int ch = 0;
                        while((ch=fr.read())!=-1)
                        {
                                System.out.print((char)ch);
                        }
                        //方式2
                        //一次读取一个字符数组
                        char[] chs = new char[1024];
                        int len = 0;
                        while((len=fr.read(chs))!=-1)
                        {
                                System.out.print(new String(chs,0,len));
                        }
                        fr.close();






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