IO流的使用之缓冲流

文章内容概括:

点击文字即可跳转

- 什么是缓存流
- 缓存输入流,读取文件
- 缓存输出流,写入数据
- 综合演练,读取A文件,并将内容写到B文件
- 课前回顾(FileIn/OutputStream,FileWrite/Reader)
什么?你对IO还是一脸懵逼的状态,那就戳我到IO常用实例大汇总,学习一些基础知识吧~~

ps:这个常用实例大汇总目前只是在创建阶段 嘻嘻 (^__^)

什么是文件缓存流
文件缓存流包括:BufferReader和BufferWrite
缓存流增强了度写文章的能力,可以成行的读取数据,是字符输出流和输入流的一种
实例化:
BufferReader br=new BufferReader(Reader in);
BufferWrite bw=new BufferWrite(Write out);
常用方法:
BufferReader: readerLine(); 读取一行的内容
BufferWrite:write(String s); 写入一个字符串
                      newLine();换行写入

读取文件内容——BufferReader

String name="C:\\Users\\lenovo\\Desktop\\text\\c.txt";
        File file = new File(name);
//读取数据
        try {
            FileReader fr = new FileReader(file);
            BufferedReader br = new BufferedReader(fr);
            //将读取的数据赋值给string
            String string =null;//到达文件的尾部读出来是空
            while((string=br.readLine())!=null){
                System.out.println(string);

            }
            //从上层流关闭到底层流
            br.close();
            fr.close();
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }

向文件写入内容——BufferReader

// 向文件写入数据
        String[] content = { "我爱JAVA", "我爱安卓", "我爱HTML" };
        String name="C:\\Users\\lenovo\\Desktop\\text\\c.txt";
        File file = new File(name);
        try {
            FileWriter fw = new FileWriter(file, true);// 第二个参数,true追加信息,false为覆盖(会将以前文件的内容覆盖)
            BufferedWriter bw = new BufferedWriter(fw);
            for (String a : content) {
                bw.write(a);// 写入,一次写入一个元素
                bw.newLine();// 换行
            }
            // 上层流到底层流慢慢的关闭
            bw.close();
            fw.close();
            System.out.println("写入成功");
        } catch (IOException e) {
            e.printStackTrace();
        }


前方高能:实战演练!!!!


首先这里创建了两个文件c.txt,e.txt,将从c的读取的内容
写入到e,e里面啥都没有,下面是c文件的内容
这里写图片描述

//读取c文件,写向e
        File fileC=new File("C:\\Users\\lenovo\\Desktop\\text\\c.txt");
        File fileE=new File("C:\\Users\\lenovo\\Desktop\\text\\e.txt");
        try {
            FileReader fr=new FileReader(fileC);
            FileWriter fw=new FileWriter(fileE);
            BufferedReader br=new BufferedReader(fr);
            BufferedWriter bw=new BufferedWriter(fw);
            //先读取C中的数据
            String str=null;
            //使用while循环进行每一行的读取,边读取边写入
            while((str=br.readLine())!=null){
                bw.write(str);
                //这里有换行千万别忘了
                bw.newLine();

            }
            //关闭流
            br.close();
            bw.close();
            fr.close();
            fw.close();
            System.out.println("写入成功");
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }

这里要注意,如果不加bw.newLine();效果是这样滴
这里写图片描述
没有进行换行
加上之后才会变成这样
这里写图片描述
步骤总结:
1.定义两个要操作的文件
2.实例化FileReader/Writer类
3.将FileReader/Writer的对象传入BufferReader/Writer,从而实例化缓存流对象
4.定义一个String字符串,用来存放每一次读取的数据
5.使用while循环,一行一行读,并把读取到的数据写到目标文件中
6.关闭流

今天的内容就是这些,谢谢大家的阅读,比心~再见~
这里写图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值