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

来源:互联网 发布:淘宝如何举报店铺 编辑:程序博客网 时间:2024/04/29 04:47

——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("睡觉");}

}

0 0
原创粉丝点击