BufferedWriter将文本写入字符输出流,缓冲各个字符,从而提供单个字符、数组和字符串的高效写入。
下面为API上对BufferedWriter的介绍及方法摘要:
可以指定缓冲区的大小,或者接受默认的大小。在大多数情况下,默认值就足够大了。
该类提供了 newLine() 方法,它使用平台自己的行分隔符概念,此概念由系统属性 line.separator 定义。并非所有平台都使用新行符 ('\n') 来终止各行。因此调用此方法来终止每个输出行要优于直接写入新行符。
通常 Writer 将其输出立即发送到底层字符或字节流。除非要求提示输出,否则建议用 BufferedWriter 包装所有其 write() 操作可能开销很高的 Writer(如 FileWriters 和 OutputStreamWriters)。例如,
PrintWriter out = new PrintWriter(new BufferedWriter(new FileWriter("foo.out")));将缓冲 PrintWriter 对文件的输出。如果没有缓冲,则每次调用 print() 方法会导致将字符转换为字节,然后立即写入到文件,而这是极其低效的。
方法摘要 | |
---|---|
void | close() 关闭此流,但要先刷新它。 |
void | flush() 刷新该流的缓冲。 |
void | newLine() 写入一个行分隔符。 |
void | write(char[] cbuf, int off, int len) 写入字符数组的某一部分。 |
void | write(int c) 写入单个字符。 |
void | write(String s, int off, int len) 写入字符串的某一部分。 |
下面介绍一个例子:说明一下 通过调用方法实现对E盘haha文件中jie.doc中写入部分信息
import java.io.*;
public class BufferedWri {
public static void main(String[] args){
BufferedWriter bw = null;
FileWriter fil = null;
try {
fil = new FileWriter("E:\\haha\\jie.doc");
bw = new BufferedWriter(fil);
bw.write("租赁信息");
bw.newLine();
bw.write("======================================================================");
bw.newLine();
bw.write("|\t编号\t|\t名称\t|\t租赁日期\t|\t返还日期\t|\t备注\t|");
bw.newLine();
bw.write("----------------------------------------------------------------------");
bw.newLine();
bw.write("\t001\t\t\t轿车\t\t20150820\t\t20150821\t\t给你");
//
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
try {
bw.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}