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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 花漾丶 中级黑马   /  2017-8-22 13:53  /  1230 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

## FileWirter方法及使用

>* 构造方法

        FileWriter(String fileName) 传入一个文件的路径,要写入文件的名字

>* 成员方法
       
        void write(String str) 写入一个字符串
        void flush()  刷新缓冲区的
        void close()  关闭资源

>*  FileWriter写数据的5个方法(必须掌握)

        void write(String str):写入一个字符串
        void write(String str,int index,int len):把字符串的一部分写入文件
        void write(int ch):写入单个字符,int可以写整数,也可以写char字符
        void write(char[] chs):把字符数组写入到文件
        void write(char[] chs,int index,int len):把字符数组的一部分写入文件

>* 如何实现尾部追加

        构造方法: FileWriter(String fileName, boolean append)
        在构造方法的后面加上true即可,
        FileWriter(String fileName)
        如果不写默认的是false表示的是不追加数据

## FileReader方法及使用
       
>*  FileReader读数据一次读取一个字符

        FileRead的构造方法
        FileReader(String fileName) 读取文件
        FileRead是通过哪个方法读取数据的? 文件的末尾结束标记为?
        read()
        -1

        输入和输出的注意事项:
                输出流操作文件:我们本地硬盘上没有文件会自动创建一个文件
                输入流读取文件:本地硬盘上有才会去读,没有的话就报java.io.FileNotFoundException

>* FileReader读数据一次一个字符数组

        案例代码
                public static void main(String[] args) throws IOException {
                //创建FileReader并关联文件
                FileReader fr = new FileReader("FileWriterDemo2.java");
                //创建FileWriter并关联文件
                FileWriter fw = new FileWriter("charCopy.txt");
                //创建字符数组
                char[] chs = new char[1024];
                //记录长度
                int len;
                while((len = fr.read(chs))!=-1){
                        fw.write(chs, 0, len);
                //        System.err.println(len);
                }
               
                fw.close();
                fr.close();
        }

## 缓冲流

>* 使用构造方法来创建(格式必须记住)

        输入缓冲流
        BufferedReader br = new BufferedReader(new FileReade("CopyText6.java"));
        输出缓冲流
        BufferedWriter bw = new BufferedWriter(new FileWriter("Text4.txt"));
       
        //一次读取一个字符
        int len;
        while((len = br.read())!=-1){
                System.out.print((char)len);
        }

        //一次读取一个字符数组       
        //定义一个字符数组
        char[] chs = new char[1024];
        //定义一个len变量
        int len;
        while((len=br.read(chs))!=-1){
                System.out.print(new String(chs,0,len));
        }

## 缓冲流的特殊功能

>* BufferedReader的特殊功能:

        readLine()一次读取一行

>* BufferedWriter的特殊功能:
                                       
        newLine() 换行  跨平台的

>* 最终代码演示

案例代码:(重点必须掌握)

        public static void main(String[] args) throws IOException {
                // 使用缓冲流的特殊功能复制文件
                BufferedReader br = new BufferedReader(new FileReader("FileWriterDemo2.java"));
                BufferedWriter bw = new BufferedWriter(new FileWriter("readLine.txt"));
                // int len;
                String line;
                while ((line = br.readLine()) != null) {
                        bw.write(line);
                        // bw.write("\r\n"); // 不能跨平台
                        bw.newLine();        //跨平台
                }
                // char[] chs = new char[1024];
                // while((len = br.read(chs))!=-1){
                // bw.write(chs, 0, len);
                // }
                bw.close();
                br.close();
         }

       

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马