java io BufferedWriter源码分析

这篇博客详细分析了Java IO中的BufferedWriter类,包括其内部字段如out、cb、nChars、nextChar、defaultCharBufferSize、lineSeparator,以及构造函数。还探讨了关键方法,如ensureOpen用于检查流是否已打开,flushBuffer用于刷新缓冲区,write方法用于写入字符,min方法用于确定最小值,以及newLine、flush和close方法,它们分别用于添加换行、刷新缓冲区和关闭流。
摘要由CSDN通过智能技术生成

目录

简介

字段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的值。
     */
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值