首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

黑马软件工程师_<<字符流的缓冲技术和装饰类(BufferedWriter,BufferedReader,LineNumberReader)>

2013-10-08 
黑马程序员_字符流的缓冲技术和装饰类(BufferedWriter,BufferedReader,LineNumberReader)------------

黑马程序员_<<字符流的缓冲技术和装饰类(BufferedWriter,BufferedReader,LineNumberReader)>>

--------------------ASP.Net+Android+IOS开发、.Net培训、期待与您交流! --------------------


1.BufferedWriter

     

    BufferedWriter是利用的缓冲技术,操作的是输入流,把Writer对象构造函数的参数传入,首先是把信息读取到缓冲流中,然后再刷新缓冲流,把读到的文件信息传到目的地。这提高了写入的效率。

   这里写入的方法增加了newLine()方法,换行,这个是跨平台的操作,不用在写”\r\n”,当关闭缓冲流,同时也关闭了缓冲流中封装的输入字符流。

 

缓冲区都有自己默认的长度,也可以自己设定长度,一般情况下,默认长度据够用了

 

     其实这是装饰类,用了装饰设计模式,详细参考    黑马程序员_<<装饰设计模式>>



模拟换行

 

    

 import java.io.BufferedReader;import java.io.IOException;import java.io.LineNumberReader;import java.io.Reader;/*自定义的可以设置行号读取类*/public class MyLineNumberReader extends BufferedReader {   private Reader r;// 读取流字符流  private int LineNumber;// 行号   public MyLineNumberReader(Reader r) {    super(r);// 父类的构造方法  }   public int getLineNumber() {    return LineNumber;  }   public void setLineNumber(int lineNumber) {    LineNumber = lineNumber;  }   public String readLine() throws IOException {    this.LineNumber++;// 每读取一行,行号就增加    return super.readLine();  }   public void close() throws IOException {    super.close();  } } import java.io.FileNotFoundException;import java.io.FileReader;import java.io.IOException;import java.io.LineNumberReader; public class LineNumberDemo {  public static void main(String[] args) {    MyLineNumberReader lnr = null;     try {      lnr = new MyLineNumberReader(new FileReader("F:\\ClassDemo.java"));      String line = null;      //lnr.setLineNumber(10);//在这里也可以自己设置行号的开始  默认的是从1开始      while ((line = lnr.readLine()) != null) {        System.out.println(lnr.getLineNumber()+":"+line);      }    } catch (FileNotFoundException e) {      System.out.println("没有找到指定的文件");    } catch (IOExceptione) {      System.out.println("读取失败");    } finally {      if (lnr != null) {         try {           lnr.close();         } catch (IOException e) {           System.out.println("流关闭失败");         }      }    }   } } 部分结果:1:package www.fuxi.IO;2:3:importjava.io.FileNotFoundException;4:import java.io.FileReader;5:import java.io.IOException;6:7:public class ClassDemo {8:  public static void main(String[]args) {


--------------------ASP.Net+Android+IOS开发、.Net培训、期待与您交流! --------------------

 


热点排行