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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© mm2015 中级黑马   /  2015-12-31 18:33  /  633 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

一、字符流

1、字符流FileReader

        一次读取一个字符:
                int read()

2、字符流FileWriter
        写一个字符:
                void write(int c)
        写一个字符串:
                void write(String str)
      
3、字符流的拷贝
        字符流必须刷新缓冲区。(文件的基本单位是字节)
       
        int c;
        while((c = fr.read()) != -1){
                fw.write(c); // 到这一步还没有写到文件上。
                // fw.flush();
        }
       
        fw.close(); // 关闭流,但要先刷新它。

4、什么情况下使用字符流
        字符流 -- 只能文本文件
                如果是拷贝文件,效率稍稍不如字节流
                如果读取或者写入一段文本数据,使用字符流
               
        字节流 -- 操作任何文件
                图片、音视频、可运行文件等等

5、字符流是否可以拷贝非纯文本的文件

6、自定义字符数组的拷贝
        char[] chs = new char[1024];
        int len;
        while((len = fr.read(chs)) != -1) {
                fw.write(chs, 0, len);
                fw.flush(); // 在合适的时候刷新缓冲区
        }
       

7、带缓冲的字符流

        String line;
        while((line = br.readLine()) != null){
                bw.write(line);
                bw.newLine();
        }

8、readLine()和newLine()方法

9、练习 -- 将一个文本文档的文本反转,第一行和倒数第一行换,第二行和倒数第二行换。

10、LineNumberReader -- 统计行号

        int getLineNumber()
        void setLineNumber()

二、字符流其他内容

1、装饰设计模式
        研究设计模式 -- 面向对象(封装、继承、多态)

2、使用指定的码表读写字符
        转换流:
                InputStreamReader(InpiutStream is, String charSet) -- 字节流通向字符流的桥梁
                OutputStreamWriter(OutputStream os, String charSet) -- 字符流通向字节流的桥梁
               
                谁到谁的桥梁按数据流向去理解。但是,实际操作的时候都是讲字节流传入转换流的构造方法,转变为字符流。
               
                字符流 = 字节流 + 编码表(理解)

3、转换流图解

4、获取文本上字符出现的次数

5、试用版软件

三、递归

1、File类递归
        递归:方法内部调用方法本身的编程技巧。
        分析:把复杂的问题进行分解,分解成若干类似的简单问题。持续下去,直到简单的问题可以直接求解。
                那么复杂的问题就由简单的问题反推得解。
                使用递归时:
                        找规律
                        找出口
        注意:
                递归不能调用太多次,容易内存溢出
                递归必须有出口,否则死递归。
               
        应用:
                斐波那契数列(黄金分割数列)
                求阶乘
               
                遍历带子内容的文件夹
                删除带子内容的文件夹
       
2、File类练习 -- 键盘录入路径,获取该路径下所有的.java文件。

拿到数组后做一个非null判断,可以避免非空2

1 个回复

倒序浏览
小五哥 来自手机 中级黑马 2015-12-31 20:03:13
沙发
酷,好样的
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马