目录
字段out,cb,nChars,nextChar,defaultCharBufferSize,lineSeparator,两个构造函数
方法ensureOpen,flushBuffer,write,min
2个write方法,方法newLine,flush,close
简介
package java.io;
/**
* 将文本写入字符输出流,缓冲字符,以便有效地编写单个字符、数组和字符串。
*
* <p> 可以指定缓冲区大小,也可以接受默认大小。
* 缺省值对于大多数用途来说已经足够大了。
*
* <p>提供了一个newLine()方法,它使用平台自己的线分隔符概念,由系统属性line.separator定义。
* 不是所有平台都使用换行符('\n')来结束行。
* 因此,最好调用这个方法来终止每个输出行,直接生成换行符。
*
* <p>一般来说,写入器立即将其输出发送到底层字符流或字节流。
* 除非需要立刻输出,否则建议将BufferedWriter包裹在任何可能
* 需要write()操作的写入器周围,比如FileWriters和OutputStreamWriters。例如,
*
* <pre>
* PrintWriter out
* = new PrintWriter(new BufferedWriter(new FileWriter("foo.out")));
* </pre>
*
* 将缓冲PrintWriter的输出到文件中。
* 如果没有缓冲,每次调用print()方法都会导致字符被转换成字节,然后立即写入文件,这可能非常低效。
*
* @see PrintWriter
* @see FileWriter
* @see OutputStreamWriter
* @see java.nio.file.Files#newBufferedWriter
*
* @author Mark Reinhold
* @since JDK1.1
*/
public class BufferedWriter extends Writer
字段out,cb,nChars,nextChar,defaultCharBufferSize,lineSeparator,两个构造函数
// 内部有一个Writer,类似于装饰器模式
private Writer out;
// 缓存数组cb
private char cb[];
// cb的大小和下一个写入的index
private int nChars, nextChar;
// 默认缓存大小,8192个char
private static int defaultCharBufferSize = 8192;
/**
* 行分隔符字符串。
* 这是在流创建时的line.separator的值。
*/