public class OutputStreamWriter
extends Writer
java.lang.Object | ||
↳ | java.io.Writer | |
↳ | java.io.OutputStreamWriter |
Known Direct Subclasses |
OutputStreamWriter是从字符流到字节流的桥梁:写入它的字符使用指定的
编码为字节。 它使用的字符集可以用名字指定,也可以明确给出,或者可以接受平台的默认字符集。charset
write()方法的每次调用都会导致编码转换器在给定字符上被调用。 生成的字节在写入底层输出流之前会在缓冲区中累积。 这个缓冲区的大小可以被指定,但是默认情况下它对于大多数目的来说足够大。 请注意,传递给write()方法的字符不会被缓冲。
为了获得最高效率,可以考虑在BufferedWriter中封装一个OutputStreamWriter,以避免频繁的转换器调用。 例如:
Writer out = new BufferedWriter(new OutputStreamWriter(System.out));
代理对是由两个 char值序列表示的字符:'\ uD800'至'\ uDBFF'范围内的 高代理项,后跟'\ uDC00'至'\ uDFFF'范围内的 低代理项。
一个 畸形的代理元素是一个高代理人,而不是低代理人或低代理人之前没有高代理人。
该类始终用字符集的默认替换序列替换畸形的替代元素和不可映射的字符序列 。 当需要对编码过程进行更多控制时,应该使用CharsetEncoder类。
也可以看看:
Inherited fields |
---|
From class java.io.Writer
|
Public constructors |
|
---|---|
OutputStreamWriter(OutputStream out, String charsetName) 创建一个使用指定字符集的OutputStreamWriter。 |
|
OutputStreamWriter(OutputStream out) 创建一个使用默认字符编码的OutputStreamWriter。 |
|
OutputStreamWriter(OutputStream out, Charset cs) 创建一个使用给定字符集的OutputStreamWriter。 |
|
OutputStreamWriter(OutputStream out, CharsetEncoder enc) 创建一个使用给定字符集编码器的OutputStreamWriter。 |
Public methods |
|
---|---|
void |
close() 关闭小溪,首先冲洗它。 |
void |
flush() 刷新流。 |
String |
getEncoding() 返回此流使用的字符编码的名称。 |
void |
write(int c) 写一个字符。 |
void |
write(String str, int off, int len) 写入一部分字符串。 |
void |
write(char[] cbuf, int off, int len) 写入一个字符数组的一部分。 |
Inherited methods |
|
---|---|
From class java.io.Writer
|
|
From class java.lang.Object
|
|
From interface java.lang.Appendable
|
|
From interface java.io.Closeable
|
|
From interface java.io.Flushable
|
|
From interface java.lang.AutoCloseable
|
OutputStreamWriter (OutputStream out, String charsetName)
创建一个使用指定字符集的OutputStreamWriter。
Parameters | |
---|---|
out |
OutputStream : An OutputStream |
charsetName |
String : The name of a supported charset
|
Throws | |
---|---|
UnsupportedEncodingException |
If the named encoding is not supported |
OutputStreamWriter (OutputStream out)
创建一个使用默认字符编码的OutputStreamWriter。
Parameters | |
---|---|
out |
OutputStream : An OutputStream |
OutputStreamWriter (OutputStream out, Charset cs)
创建一个使用给定字符集的OutputStreamWriter。
Parameters | |
---|---|
out |
OutputStream : An OutputStream |
cs |
Charset : A charset |
OutputStreamWriter (OutputStream out, CharsetEncoder enc)
创建一个使用给定字符集编码器的OutputStreamWriter。
Parameters | |
---|---|
out |
OutputStream : An OutputStream |
enc |
CharsetEncoder : A charset encoder |
void close ()
关闭小溪,首先冲洗它。 一旦流被关闭,进一步的write()或flush()调用将导致抛出IOException异常。 关闭以前关闭的流不起作用。
Throws | |
---|---|
IOException |
String getEncoding ()
返回此流使用的字符编码的名称。
如果编码具有历史名称,则返回该名称; 否则返回编码的规范名称。
如果此实例是使用OutputStreamWriter(OutputStream, String)
构造函数创建的,则返回的名称(对编码唯一)可能与传递给构造函数的名称不同。 如果流已关闭,则此方法可能会返回null 。
Returns | |
---|---|
String |
The historical name of this encoding, or possibly null if the stream has been closed |
也可以看看:
void write (int c)
写一个字符。
Parameters | |
---|---|
c |
int : int specifying a character to be written |
Throws | |
---|---|
IOException |
If an I/O error occurs |
void write (String str, int off, int len)
写入一部分字符串。
Parameters | |
---|---|
str |
String : A String |
off |
int : Offset from which to start writing characters |
len |
int : Number of characters to write |
Throws | |
---|---|
IOException |
If an I/O error occurs |
void write (char[] cbuf, int off, int len)
写入一个字符数组的一部分。
Parameters | |
---|---|
cbuf |
char : Buffer of characters |
off |
int : Offset from which to start writing characters |
len |
int : Number of characters to write |
Throws | |
---|---|
IOException |
If an I/O error occurs |