黑马程序员——java基础 io 流 (提高流的读写效率)BufferedReader,BufferedWriter

——Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ——

io提高流读写效率

io BufferedWriter,BufferedReader第一讲

特有的方法 newLine() 换行的方法 ## BufferedWrite ##

package com.kaka.buffered;

import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;

/**
 * 用BufferedWriter写入文件
 * 
 * 流的缓冲去,提高流读写效率
 * @author Administrator
 *
 */
public class BufferedTest {
           public static void main(String[] args) {
            BufferedMethod();
        }

        private static void BufferedMethod() {
            // TODO Auto-generated method stub
            //字符流对象
            FileWriter  fw=null;
            //字符流缓冲对象
            BufferedWriter  bw=null;
            try {
                fw=new FileWriter("c:\\demo.txt");

                bw=new BufferedWriter(fw);
                //要写入内容
                bw.write("天赋异禀");
                //缓存流专有的换行方法  (\r\n)
                bw.newLine();
                //再写入一条
                bw.write("天纵奇才");
                //刷进文件
                bw.flush();

            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }finally{
                //只要关闭缓存流就行
                if(bw!=null)
                    try {
                        bw.close();
                    } catch (IOException e) {
                        // TODO Auto-generated catch block
                    e.printStackTrace();
                }
            }
        }
}

```                                         ## BufferedReader ##
**读取文本文件特有的方法     readLine() **




<div class="se-preview-section-delimiter"></div>

```这里写代码片  
package com.kaka.buffered;

import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;

/**
 *  利用缓冲区去读取文件
 * BufferedReader对象特有地方法
 * @author Administrator
 *
 */
public class BufferedReaderTest {

               public static void main(String[] args) {
                bufferedReaderMethod();
            }

            private static void bufferedReaderMethod() {
                // TODO Auto-generated method stub
                //字符读取流对象
                FileReader  fr=null;
                //利用缓冲流,加粗水管
                BufferedReader br=null;
                try {
                    fr=new FileReader("C:\\Documents and Settings\\Administrator" +
                            "\\桌面\\HeiMa\\src\\com\\kaka\\io\\test1.java");

                    br=new BufferedReader(fr);

                    //用来接收
                    String lin=null;

                    try {
                        //只要拿到的文本文件部位空,就一直循环
                        while((lin=br.readLine())!=null){

                                  //一行一行的拿
                                 System.out.println(lin);

                        }

                    } catch (IOException e1) {
                        // TODO Auto-generated catch block
                        e1.printStackTrace();
                    }


                } catch (FileNotFoundException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }finally{
                    if(br!=null)
                        try {
                            br.close();
                        } catch (IOException e) {
                            // TODO Auto-generated catch block
                            e.printStackTrace();
                        }
                }
            }

} 
                                               ## BufferedReader,BufferedWriter ,Copy文件 ##
 ## 第三讲 ##
``package com.kaka.buffered;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;

/**
 *利用BufferedReader  和  BufferedWriter  来 copy文件
 * 
 * @author Administrator
 *
 */
public class BufferedReaderCopy {
           public static void main(String[] args) {
              bufferedCopyMethod();
        }

        private static void bufferedCopyMethod() {
            // TODO Auto-generated method stub
            BufferedReader  br=null;
             BufferedWriter  bw=null;
            try {
                br=new  BufferedReader(new FileReader("C:\\Documents and Settings\\Administrator" +
                                "\\桌面\\HeiMa\\src\\com\\kaka\\io\\test1.java"));

               try {
                bw=new BufferedWriter(new FileWriter("d:\\java.txt"));

                String str=null;

                while((str=br.readLine())!=null){
                        //写入文件 
                        bw.write(str);  
                         //换行
                         bw.newLine();
                       //刷新
                        bw.flush();
                }

            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }

            } catch (FileNotFoundException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }finally{
                if(br!=null)
                    try {
                        br.close();
                        if(bw!=null)
                            bw.close();
                    } catch (IOException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                    }
            }
        }
}
## 第四讲 自定义BufferedReader  里面的 readLine()和  close() ##

这里写代码片
“`

“`这里写代码片
package com.kaka.buffered;

import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;

/**
* 利用缓冲区去读取文件
* BufferedReader对象特有地方法
* @author Administrator
*
*/
public class BufferedReaderTest {

           public static void main(String[] args) {
            bufferedReaderMethod();
        }

        private static void bufferedReaderMethod() {
            // TODO Auto-generated method stub
            //字符读取流对象
            FileReader  fr=null;
            //利用缓冲流,加粗水管
            BufferedReader br=null;
            try {
                fr=new FileReader("C:\\Documents and Settings\\Administrator" +
                        "\\桌面\\HeiMa\\src\\com\\kaka\\io\\test1.java");

                br=new BufferedReader(fr);

                //用来接收
                String lin=null;

                try {
                    //只要拿到的文本文件部位空,就一直循环
                    while((lin=br.readLine())!=null){

                              //一行一行的拿
                             System.out.println(lin);

                    }

                } catch (IOException e1) {
                    // TODO Auto-generated catch block
                    e1.printStackTrace();
                }


            } catch (FileNotFoundException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }finally{
                if(br!=null)
                    try {
                        br.close();
                    } catch (IOException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                    }
            }
        }

}
## BufferedReader,BufferedWriter ,Copy文件 ##
## 第三讲 ##
“package com.kaka.buffered;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;

/**
*利用BufferedReader 和 BufferedWriter 来 copy文件
*
* @author Administrator
*
*/
public class BufferedReaderCopy {
public static void main(String[] args) {
bufferedCopyMethod();
}

    private static void bufferedCopyMethod() {
        // TODO Auto-generated method stub
        BufferedReader  br=null;
         BufferedWriter  bw=null;
        try {
            br=new  BufferedReader(new FileReader("C:\\Documents and Settings\\Administrator" +
                            "\\桌面\\HeiMa\\src\\com\\kaka\\io\\test1.java"));

           try {
            bw=new BufferedWriter(new FileWriter("d:\\java.txt"));

            String str=null;

            while((str=br.readLine())!=null){
                    //写入文件 
                    bw.write(str);  
                     //换行
                     bw.newLine();
                   //刷新
                    bw.flush();
            }

        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

        } catch (FileNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }finally{
            if(br!=null)
                try {
                    br.close();
                    if(bw!=null)
                        bw.close();
                } catch (IOException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
        }
    }

}
## 装饰设计模式 ##

第四讲 自定义BufferedReader 里面的 readLine()和 close()

这个世界sb很多
这里写代码片
package com.kaka.buffered;

import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;

/**
*
* 自定义BufferedReader
*
* @author Administrator
*
*/
public class CustomBufferedReader {

public static void main(String[] args)  {
        //字符流
         FileReader fr=null;
         MyBufferedReader  mbr=null;
        try {
            fr = new FileReader("C:\\Documents and Settings\\Administrator" +
                                "\\桌面\\HeiMa\\src\\com\\kaka\\io\\test1.java");

            //自定义的缓冲流
            mbr=new MyBufferedReader(fr);

            String len=null;
            while((len=mbr.myreadLine())!=null){
                System.out.println(len);
            }


        } catch (FileNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }finally{
            try {
                if(mbr!=null)
                mbr.myClose();
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
}

}

}

}

MyBufferedReader 这个类就是装饰类

//模拟BufferedReader类 里面 readLine()方法和 close()方法
class MyBufferedReader{
//文件流
public FileReader fr;
//内部类的构造函数
MyBufferedReader(FileReader fr) {
super();
this.fr = fr;
}

//读取  一行  的方法
public String  myreadLine(){
    //定义一个字符串容器
    StringBuilder  sb=new StringBuilder();

    int len=0;

    try {
        while((len=fr.read())!=-1){
            if(len=='\r')
                continue;
            if(len=='\n')
                return sb.toString();
            else{
                sb.append((char)len);
            }
        }
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
    //不管 有没有\n,只要sb有就必须返回
    if(sb.length()!=0)
    return  sb.toString();
    return null;
} 

//关闭的方法
public void myClose() throws IOException{
      fr.close();   
}

}
## 装饰设计模式 将被增强的对象传给增强的类 ##

对原来类功能的增强 例如:FileReader 的增强类(也就是装饰类) BufferedReader(new FileReader())

毕老师的视频讲解源码

package com.kaka.buffered;

/**
*
* 装饰设计模式
* @author Administrator
*
*/
public class ModelBufferedReader {
public static void main(String[] args) {
Person p=new Person();
// p.feed();
SuperPerson sp=new SuperPerson(p);

              sp.superFeed();
        }

}

//装饰之前的类
class Person{
//装饰前的方法
public void feed(){
System.out.println(“吃饭”);
}
}
//装饰的类
class SuperPerson{

private Person  p;

public SuperPerson(Person p) {
    super();
    this.p = p;
}
//增强的吃饭的方法
public void superFeed(){
    System.out.println("喝汤");
    System.out.println("吃水果");
    p.feed();
    System.out.println("睡觉");
}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值