java.lang.Object java.io.Writer java.io.OutputStreamWriter
public class OutputStreamWriter
OutputStreamWriter 是字符流通向字节流的桥梁:可使用指定的
将要写入流中的字符编码成字节。它使用的字符集可以由名称指定或显式给定,否则将接受平台默认的字符集。 charset
每次调用 write() 方法都会导致在给定字符(或字符集)上调用编码转换器。在写入底层输出流之前,得到的这些字节将在缓冲区中累积。可以指定此缓冲区的大小,不过,默认的缓冲区对多数用途来说已足够大。注意,传递给 write() 方法的字符没有缓冲。
为了获得最高效率,可考虑将 OutputStreamWriter 包装到 BufferedWriter 中,以避免频繁调用转换器。例如:
Writer out = new BufferedWriter(new OutputStreamWriter(System.out));
代理对 是一个字符,它由两个 char 值序列表示:高 代理项的范围为 '\uD800' 到 '\uDBFF',后跟范围为 '\uDC00' 到 '\uDFFF' 的低 代理项。
错误代理元素 指的是后面不跟低代理项的高代理项,或前面没有高代理项的低代理项。
此类总是使用字符集的默认替代序列 替代错误代理元素和不可映射的字符序列。如果需要更多地控制编码过程,则应该使用 CharsetEncoder 类。
BufferedWriter
,
OutputStream
,
Charset
字段摘要 |
---|
从类 java.io.Writer 继承的字段 |
---|
lock |
构造方法摘要 | |
---|---|
OutputStreamWriter(OutputStream out) 创建使用默认字符编码的 OutputStreamWriter。 |
|
OutputStreamWriter(OutputStream out, Charset cs) 创建使用给定字符集的 OutputStreamWriter。 |
|
OutputStreamWriter(OutputStream out, CharsetEncoder enc) 创建使用给定字符集编码器的 OutputStreamWriter。 |
|
OutputStreamWriter(OutputStream out, String charsetName) 创建使用指定字符集的 OutputStreamWriter。 |
方法摘要 | |
---|---|
void |
close() 关闭此流,但要先刷新它。 |
void |
flush() 刷新该流的缓冲。 |
String |
getEncoding() 返回此流使用的字符编码的名称。 |
void |
write(char[] cbuf, int off, int len) 写入字符数组的某一部分。 |
void |
write(int c) 写入单个字符。 |
void |
write(String str, int off, int len) 写入字符串的某一部分。 |
从类 java.io.Writer 继承的方法 |
---|
append, append, append, write, write |
从类 java.lang.Object 继承的方法 |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
构造方法详细信息 |
---|
public OutputStreamWriter(OutputStream out, String charsetName) throws UnsupportedEncodingException
out
- OutputStream
charsetName
- 受支持
charset
的名称
UnsupportedEncodingException
- 如果不支持指定的编码
public OutputStreamWriter(OutputStream out)
out
- OutputStream
public OutputStreamWriter(OutputStream out, Charset cs)
out
- OutputStream
cs
- 字符集
public OutputStreamWriter(OutputStream out, CharsetEncoder enc)
out
- OutputStream
enc
- 字符集编码器
方法详细信息 |
---|
public String getEncoding()
如果该编码具有历史名称,则返回该名称;否则返回该编码的规范化名称。
如果此实例是用 OutputStreamWriter(OutputStream, String)
构造方法创建的,则返回的对于编码唯一的名称可能与传递给该构造方法的名称不同。如果流已经关闭,则此方法可能返回 null。
null
Charset
public void write(int c) throws IOException
c
- 指定要写入字符的 int。
IOException
- 如果发生 I/O 错误
public void write(char[] cbuf, int off, int len) throws IOException
cbuf
- 字符缓冲区
off
- 开始写入字符处的偏移量
len
- 要写入的字符数
IOException
- 如果发生 I/O 错误
public void write(String str, int off, int len) throws IOException
str
- 字符串
off
- 开始写入字符处的偏移量
len
- 要写入的字符数
IOException
- 如果发生 I/O 错误
public void flush() throws IOException
IOException
- 如果发生 I/O 错误
public void close() throws IOException