java.lang.Object
java.io.Writer
java.io.OutputStreamWriter
- 所有已实现的接口:
-
Closeable
,Flushable
,Appendable
,AutoCloseable
- 直接已知的子类:
-
FileWriter
OutputStreamWriter是从字符流到字节流的桥梁:写入它的字符会使用指定的
charset
进行编码。它使用的字符集可以通过名称指定,也可以明确给出,或者可以接受默认字符集。
每次调用write()方法都会导致编码转换器对给定的字符进行调用。生成的字节会在写入到底层输出流之前累积在缓冲区中。请注意,传递给write()方法的字符不会被缓冲。
为了达到最高效率,考虑将OutputStreamWriter包装在BufferedWriter中,以避免频繁的转换器调用。例如:
Writer out = new BufferedWriter(new OutputStreamWriter(anOutputStream));
一个代理对是由两个char
值序列表示的字符:一个在范围'\uD800'到'\uDBFF'内的高代理项,后跟一个在范围'\uDC00'到'\uDFFF'内的低代理项。
一个格式错误的代理元素是一个高代理项后面没有跟随低代理项,或者一个低代理项前面没有跟随高代理项。
该类始终使用字符集的默认替换序列替换格式错误的代理元素和不可映射的字符序列。当需要对编码过程进行更多控制时,应使用CharsetEncoder类。
- 自从:
- 1.1
- 参见:
-
Field Summary
-
Constructor Summary
ConstructorDescription创建一个使用默认字符编码的OutputStreamWriter,或者当out
是PrintStream
时,使用打印流使用的字符集。OutputStreamWriter
(OutputStream out, String charsetName) 创建一个使用指定字符集的OutputStreamWriter。OutputStreamWriter
(OutputStream out, Charset cs) 创建一个使用给定字符集的OutputStreamWriter。OutputStreamWriter
(OutputStream out, CharsetEncoder enc) 创建一个使用给定字符集编码器的OutputStreamWriter。 -
Method Summary
-
Constructor Details
-
OutputStreamWriter
创建一个使用指定字符集的OutputStreamWriter。- 参数:
-
out
- 一个OutputStream -
charsetName
- 支持的charset
的名称 - 抛出:
-
UnsupportedEncodingException
- 如果不支持指定的编码
-
OutputStreamWriter
创建一个使用默认字符编码的OutputStreamWriter,或者当out
是PrintStream
时,使用打印流使用的字符集。- 参数:
-
out
- 一个OutputStream - 参见:
-
OutputStreamWriter
创建一个使用给定字符集的OutputStreamWriter。- 参数:
-
out
- 一个OutputStream -
cs
- 一个字符集 - 自从:
- 1.4
-
OutputStreamWriter
创建一个使用给定字符集编码器的OutputStreamWriter。- 参数:
-
out
- 一个OutputStream -
enc
- 一个字符集编码器 - 自从:
- 1.4
-
-
Method Details
-
getEncoding
返回此流正在使用的字符编码的名称。如果编码具有历史名称,则返回该名称;否则返回编码的规范名称。
如果此实例是使用
OutputStreamWriter(OutputStream, String)
构造函数创建的,则返回的名称,作为编码的唯一标识,可能与传递给构造函数的名称不同。如果流已关闭,则此方法可能返回null
。- 返回:
-
此编码的历史名称,如果流已关闭可能为
null
- 参见:
-
write
写入单个字符。- 覆盖:
-
write
在类中Writer
- 参数:
-
c
- 指定要写入的字符的int值 - 抛出:
-
IOException
- 如果发生I/O错误
-
write
写入字符数组的一部分。- 指定者:
-
write
在类中Writer
- 参数:
-
cbuf
- 字符缓冲区 -
off
- 开始写入字符的偏移量 -
len
- 要写入的字符数 - 抛出:
-
IndexOutOfBoundsException
- 如果off
为负数,或len
为负数,或off + len
为负数或大于给定数组的长度 -
IOException
- 如果发生I/O错误
-
write
写入字符串的一部分。- 覆盖:
-
write
在类中Writer
- 参数:
-
str
- 一个字符串 -
off
- 开始写入字符的偏移量 -
len
- 要写入的字符数 - 抛出:
-
IndexOutOfBoundsException
- 如果off
为负数,或len
为负数,或off + len
为负数或大于给定字符串的长度 -
IOException
- 如果发生I/O错误
-
flush
刷新流。- 指定者:
-
flush
在接口中Flushable
- 指定者:
-
flush
在类中Writer
- 抛出:
-
IOException
- 如果发生I/O错误
-
close
从类中复制的描述:Writer
关闭流,首先刷新它。一旦流已关闭,进一步的write()或flush()调用将导致抛出IOException。关闭先前关闭的流没有任何效果。- 指定者:
-
close
在接口中AutoCloseable
- 指定者:
-
close
在接口中Closeable
- 指定者:
-
close
在类中Writer
- 抛出:
-
IOException
- 如果发生I/O错误
-