字符复制

public static void main(String[] args) throws IOException {
        //demo1();

        //demo2();    
        /* BufferedReader的read()方法读取字符时会一次读取若干字符到缓冲区, 然后逐个返回给程序, 降低读取文件的次数, 提高效率
         * BufferedWriter的write()方法写出字符时会先写到缓冲区, 缓冲区写满时才会写到文件, 降低写文件的次数, 提高效率
         * */
                 BufferedReader br = new BufferedReader(new FileReader("aaa.txt"));    //创建字符输入流对象,关联aaa.txt
                 BufferedWriter bw = new BufferedWriter(new FileWriter("bbb.txt"));    //创建字符输出流对象,关联bbb.txt
                 
                 int ch;                
                 while((ch = br.read()) != -1) {        //read一次,会先将缓冲区读满,从缓冲去中一个一个的返给临时变量ch
                     bw.write(ch);                    //write一次,是将数据装到字符数组,装满后再一起写出去
                 }
                 
                 br.close();                            //关流
                 bw.close();  

    }

    public static void demo2() throws FileNotFoundException, IOException {
        FileReader fr = new FileReader("aaa.txt");            //创建字符输入流,关联aaa.txt
        FileWriter fw = new FileWriter("bbb.txt");            //创建字符输出流,关联bbb.txt
        
        int len;
        char[] arr = new char[1024*8];                        //创建字符数组
        while((len = fr.read(arr)) != -1) {                    //将数据读到字符数组中
            fw.write(arr, 0, len);                            //从字符数组将数据写到文件上
        }
        
        fr.close();                                            //关流释放资源
        fw.close();
    }

    public static void demo1() throws FileNotFoundException, IOException {
        FileReader fr =new FileReader("yyy");
        FileWriter fw =new FileWriter("ddd");
        int a ;
        while ((a=fr.read()) !=-1) {
            fw.write(a);  //write有2k的缓冲区 如果不关流 内容就会写在缓冲区里  关流就会把内容刷新出来
            //fw.flush();
        }
        fw.close();
        fr.close();
    }



//缓冲复制

public static void main(String[] args) throws IOException {
        //带缓冲区的流的特殊方法
        //readline
        //newline
        //demo1();
        //newLine()与("\r\n") 的区别  newLine()是跨平台的  ("\r\n")只是windows系统里的
        BufferedReader bf =new BufferedReader(new FileReader("yyy"));
        BufferedWriter bw =new BufferedWriter(new FileWriter("aaa"));
         String line ;
    while ((line =bf.readLine()) != null ) {
        bw.write(line);
        //bw.newLine();//写出回车换行符
        bw.write("\r\n");
        
    }
    bf.close();
    bw.close();
    }

    public static void demo1() throws FileNotFoundException, IOException {
        BufferedReader bf = new BufferedReader(new FileReader("yyy"));
        String line;
        while ((line=bf.readLine()) != null) {
            System.out.println(line);
            
            
        }
    }


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值