Java流与文件操作

来源:互联网 发布:数控车床cnc编程入门 编辑:程序博客网 时间:2024/05/01 23:30
 

一、字符缓冲流BufferdReader和BufferedWriter类

缓冲的字符流的出现提高了对流的操作效率,原理就是将数组进行封装。BufferdReader和BufferedWriter类可以缓冲区方式进行高效的输入/输出。

1、字符缓冲输入流BufferdReader类

(1)    类声明 

public class BufferedReader extends Reader

(2)    构造方法

public BufferedReader(Reader in):创建一个使用默认大小输入缓冲区的缓冲字符输入流。

public BufferedReader(Reader in,int sz):创建一个使用指定大小输入缓冲区的缓冲字符输入流。其中,sz指输入缓冲区的大小,如果sz≤0,则抛出IllegalArgument Exception异常。

(3)    BufferedReader的特有方法

public String readLine();//一次读一行,到行标记时,将行标记之前的字符数据作为字符串返回。当读到末尾时,返回null。

 

2、字符缓冲输出流BufferedWriter类

(1)    类声明

Public class BufferedWriter extends Writer:创建一个使用默认大小输出缓冲区的缓冲字符输出流。

(2)    构造方法

Public BufferedWriter(Writer out) :创建一个使用默认大小输出缓冲区的缓冲字符输出流。

Public BufferedWriter(Writer out,int sz):创建一个使用给定大小输出缓冲区的新缓冲字符输出流。其中,sz指输出缓冲区的大小,,是一个正整数,如果sz≤0,则抛出IllegalArgument Exception异常。

(3)    BufferedWriter的特有方法

public void newLine();//写出平台相关的行分隔符来标记一行的终止。Windows平台下为’\n’。

方法readLine()的原理:该方法用的还是与缓冲的字符流相关联的流对象的read()方法,只不过,每一次读到一个字符,先不进行具体操作,先进行临时存储,当读取到回车标记时,将临时容器中存储的数据一次性返回。

3、装饰设计模式和继承的区别

通过所学的继承特性,可以建立MediaWriter类的子类和TextWriter类的子类,在子类中重写父类的write方法即可。

二、今天的缓冲事例

1、

      package com.hbsi.IO;

import java.io.*;

public class BufferedIODemo {

    public static void main(String[] args){

       FileWriter fw=null;

       BufferedWriter bw=null;

       try {

           fw=new FileWriter("res\\demo.txt");

           bw=new BufferedWriter(fw);

           bw.write("hello");

           bw.newLine();

           bw.write("java");

           bw.newLine();

           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();

              }

           }

       }

      

    }

}

2、package com.hbsi.IO;

import java.io.*;

public class BufferedIODemo2 {

    public static void main(String[] args){

       FileReader fr=null;

       BufferedReader br=null;

      

       try {

           fr=new FileReader("res/demo.txt");

           br=new BufferedReader(fr,255);

           String str=null;

           while((str=br.readLine())!=null){

              System.out.println(str);

           }

           /*str=br.readLine();

           while(str!=null){

              System.out.println(str);

              str=br.readLine();

           }*/

       } catch (FileNotFoundException e) {

           // TODO Auto-generated catch block

           e.printStackTrace();

       }catch(IOException e){

           e.printStackTrace();

       }finally{

           if(br!=null)

           try{

              br.close();

           }catch(IOException e){

              e.printStackTrace();

           }

       }

      

    }

}

3.package com.hbsi.IO;

import java.io.*;

public class Test {

 

    /**

     * @param args

     */

    public static void main(String[] args) {

       // TODO Auto-generated method stub

       MyBufferedReader mbr=null;

       FileReader fr=null;

       try {

           fr=new FileReader("res/demo.txt");

           mbr=new MyBufferedReader(fr);

           String str=mbr.readLine();

           while(str!=null){

              System.out.println(str);

              str=mbr.readLine();

           }

       } catch (FileNotFoundException e) {

           // TODO Auto-generated catch block

           e.printStackTrace();

       }finally{

           mbr.close();

       }

    }

 

}
原创粉丝点击