- java.lang.Object
-
- java.io.Writer
-
- java.io.OutputStreamWriter
-
- 实现的所有接口
-
Closeable
,Flushable
,Appendable
,AutoCloseable
- 已知直接子类:
-
FileWriter
public class OutputStreamWriter extends Writer
OutputStreamWriter是从字符流到字节流的桥接器:使用指定的charset
将写入其中的字符编码为字节。 它使用的字符集可以通过名称指定,也可以明确指定,或者可以接受平台的默认字符集。每次调用write()方法都会导致在给定字符上调用编码转换器。 生成的字节在写入底层输出流之前在缓冲区中累积。 请注意,传递给write()方法的字符不会被缓冲。
为了获得最高效率,请考虑在BufferedWriter中包装OutputStreamWriter,以避免频繁的转换器调用。 例如:
Writer out = new BufferedWriter(new OutputStreamWriter(System.out));
代理项对是由两者的序列代表的字符
char
值:在范围内的高代理“\ uD800”到“\ uDBFF”随后在范围为“\ uDFFF”一个低代理“\ uDC00”。格式错误的替代元素是高代理人,后面没有低代理人或低代理人,而代理人之前没有高代理人。
此类始终使用charset的默认替换序列替换格式错误的代理元素和不可映射的字符序列 。 当需要对编码过程进行更多控制时,应使用CharsetEncoder类。
- 从以下版本开始:
- 1.1
- 另请参见:
-
BufferedWriter
,OutputStream
,Charset
-
-
构造方法摘要
构造方法 构造器 描述 OutputStreamWriter(OutputStream out)
创建使用默认字符编码的OutputStreamWriter。OutputStreamWriter(OutputStream out, String charsetName)
创建使用指定charset的OutputStreamWriter。OutputStreamWriter(OutputStream out, Charset cs)
创建使用给定charset的OutputStreamWriter。OutputStreamWriter(OutputStream out, CharsetEncoder enc)
创建使用给定charset编码器的OutputStreamWriter。
-
-
-
构造方法详细信息
-
OutputStreamWriter
public OutputStreamWriter(OutputStream out, String charsetName) throws UnsupportedEncodingException
创建使用指定charset的OutputStreamWriter。- 参数
-
out
- OutputStream -
charsetName
- 支持的charset
的名称 - 异常
-
UnsupportedEncodingException
- 如果不支持指定的编码
-
OutputStreamWriter
public OutputStreamWriter(OutputStream out)
创建使用默认字符编码的OutputStreamWriter。- 参数
-
out
- OutputStream
-
OutputStreamWriter
public OutputStreamWriter(OutputStream out, Charset cs)
创建使用给定charset的OutputStreamWriter。- 参数
-
out
- OutputStream -
cs
- 一个字符集 - 从以下版本开始:
- 1.4
-
OutputStreamWriter
public OutputStreamWriter(OutputStream out, CharsetEncoder enc)
创建使用给定charset编码器的OutputStreamWriter。- 参数
-
out
- OutputStream -
enc
- 字符集编码器 - 从以下版本开始:
- 1.4
-
-
方法详细信息
-
getEncoding
public String getEncoding()
返回此流使用的字符编码的名称。如果编码具有历史名称,则返回该名称; 否则返回编码的规范名称。
如果此实例是使用
OutputStreamWriter(OutputStream, String)
构造函数创建的,则返回的名称(对于编码而言是唯一的)可能与传递给构造函数的名称不同。 如果流已关闭,则此方法可能返回null
。- 结果
-
此编码的历史名称,如果流已关闭,则可能为
null
- 另请参见:
-
Charset
-
write
public void write(int c) throws IOException
写一个字符。- 重写:
-
write
在类Writer
- 参数
-
c
- 指定要写入的字符的int - 异常
-
IOException
- 如果发生I / O错误
-
write
public void write(char[] cbuf, int off, int len) throws IOException
写一个字符数组的一部分。- Specified by:
-
write
在课堂上Writer
- 参数
-
cbuf
- 字符缓冲区 -
off
- 开始写入字符的偏移量 -
len
- 要写入的字符数 - 异常
-
IndexOutOfBoundsException
- 如果off
为负数,或者len
为负数,或者off + len
为负数或大于给定数组的长度 -
IOException
- 如果发生I / O错误
-
write
public void write(String str, int off, int len) throws IOException
写一个字符串的一部分。- 重写:
-
write
类Writer
- 参数
-
str
- 一个字符串 -
off
- 开始写入字符的偏移量 -
len
- 要写入的字符数 - 异常
-
IndexOutOfBoundsException
- 如果off
为负数,或者len
为负数,或者off + len
为负数或大于给定字符串的长度 -
IOException
- 如果发生I / O错误
-
flush
public void flush() throws IOException
刷新流。- Specified by:
-
flush
in interfaceFlushable
- Specified by:
-
flush
在类Writer
- 异常
-
IOException
- 如果发生I / O错误
-
-