IO流中我接触的第一个装饰类:BufferedReader、BufferedWriter

来源:互联网 发布:淘宝鬼脚七微博 编辑:程序博客网 时间:2024/06/06 03:21

《装饰设计模式》

之后会另有介绍。。。。。。。。。。。

BufferedWriter:

构造方法:

构造方法摘要BufferedWriter(Writer out)
          创建一个使用默认大小输出缓冲区的缓冲字符输出流。

常用方法:

方法摘要 voidclose()
          关闭此流,但要先刷新它。 voidflush()
          刷新该流的缓冲。 voidnewLine()
          写入一个行分隔符。 voidwrite(char[] cbuf, int off, int len)
          写入字符数组的某一部分。 voidwrite(int c)
          写入单个字符。 voidwrite(String s, int off, int len)
          写入字符串的某一部分。

注意!注意!

该类有一个特殊方法:

newLine();//写入一个行分隔符。行分隔符字符串由系统属性 line.separator 定义,并且不一定是单个新行 ('\n') 符。

另外关闭该流就不必关闭参数中所传的流。


BufferedReader:

构造方法:

构造方法摘要BufferedReader(Reader in)
          创建一个使用默认大小输入缓冲区的缓冲字符输入流。

常用方法:

方法摘要 voidclose()
          关闭该流并释放与之关联的所有资源。 voidmark(int readAheadLimit)
          标记流中的当前位置。 intread()
          读取单个字符。 intread(char[] cbuf, int off, int len)
          将字符读入数组的某一部分。 StringreadLine()
          读取一个文本行。 booleanready()
          判断此流是否已准备好被读取。 voidreset()
          将流重置到最新的标记。 longskip(long n)
          跳过字符。

注意!注意!:

该类中有一个特殊的方法:

readLine();该方法可以读取一行,返回值:包含该行内容的字符串,不包含任何行终止符(换行符),如果已到达流末尾,则返回 null


其有一个子类:

LineNumberReader:可以设置行号、输出行号

构造方法摘要LineNumberReader(Reader in)
          使用默认输入缓冲区的大小创建新的行编号 reader。方法摘要 intgetLineNumber()
          获得当前行号。 voidmark(int readAheadLimit)
          标记该流中的当前位置。 intread()
          读取单个字符。 StringreadLine()
          读取文本行。 voidsetLineNumber(int lineNumber)
          设置当前行号。

总应用:

拷贝一个文件内容到另一个文件中

import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.FileNotFoundException;import java.io.FileReader;import java.io.FileWriter;import java.io.IOException;public class CopyTextByBufTest {/** * @param args * @throws IOException  */public static void main(String[] args) throws IOException {FileReader fr = new FileReader("buf.txt");BufferedReader bufr = new BufferedReader(fr);FileWriter fw = new FileWriter("buf_copy.txt");BufferedWriter bufw = new BufferedWriter(fw);String line = null;while((line=bufr.readLine())!=null){bufw.write(line);bufw.newLine();bufw.flush();}bufw.close();bufr.close();}}


0 0