目录
StreamEncoder流与OutputStreamWriter构造函数的联系
再次理解StreamEncoder、OutputStreamWriter、FileWriter
注意:本文参考 https://blog.csdn.net/ai_bao_zi/article/details/81181198
实例域
//默认的字节缓冲区大小,8192个字节
private static final int DEFAULT_BYTE_BUFFER_SIZE =8192;
//确保流打开以便可以进行输出和输入
private volatile boolean isOpen = true;
//每次输出前都确保流是打开的状态
private void ensureOpen() throws IOException
{
if (!isOpen)
throw new IOException("Stream closed");
}
private boolean isOpen()
{
return isOpen;
}
//字符集即我们设置的"utf-8"这种
private Charset cs;
//字符编码器
private CharsetEncoder encoder;
//字节缓冲区
private ByteBuffer bb;
//底层输出流
private final OutputStream out;
//写入信道
private WritableByteChannel ch;
//为了保证读入的字符不乱码 则每次读入不能少于两个字符
private boolean haveLeftoverChar = false;
//左侧字符
private char leftoverChar;
//字符缓冲区对象--专用于左侧字符操作
private CharBuffer lcb = null;
构造方法
//构造方法初始化实例域
private StreamEncoder(OutputStream out, Object lock, Charset cs)
{
this(out,