阅读(4432) (0)

鸿蒙OS OutputStreamWriter

2022-10-17 09:45:13 更新

OutputStreamWriter

java.lang.Object

|---java.io.Writer

|---|---java.io.OutputStreamWriter

public class OutputStreamWriter
extends Writer

OutputStreamWriter 是从字符流到字节流的桥梁:写入其中的字符使用指定的字符集编码为字节。 它使用的字符集可以由名称指定,也可以显式给出,或者可以接受平台的默认字符集。

每次调用 write() 方法都会导致对给定字符调用编码转换器。 结果字节在写入底层输出流之前累积在缓冲区中。 可以指定此缓冲区的大小,但默认情况下它对于大多数用途来说足够大。 请注意,传递给 write() 方法的字符不会被缓冲。

为了获得最高效率,请考虑将 OutputStreamWriter 包装在 BufferedWriter 中,以避免频繁的转换器调用。 例如:

 Writer out
   = new BufferedWriter(new OutputStreamWriter(System.out));

代理项对是由两个 char 值的序列表示的字符:在 '\uD800' 到 '\uDBFF' 范围内的高代理项,然后是在 '\uDC00' 到 '\uDFFF' 范围内的低代理项。

畸形的替代元素是高替代元素之后没有低替代元素或低替代元素之前没有高替代元素。

这个类总是用字符集的默认替换序列替换格式错误的代理元素和不可映射的字符序列。 当需要对编码过程进行更多控制时,应使用 CharsetEncoder 类。

Since:

JDK1.1

字段摘要

从类 java.io.Writer 继承的字段
lock

构造函数摘要

构造函数 描述
OutputStreamWriter(OutputStream out) 创建一个使用默认字符编码的 OutputStreamWriter。
OutputStreamWriter(OutputStream out, String charsetName) 创建一个使用命名字符集的 OutputStreamWriter。
OutputStreamWriter(OutputStream out, Charset cs) 创建一个使用给定字符集的 OutputStreamWriter。
OutputStreamWriter(OutputStream out, CharsetEncoder enc) 创建一个使用给定字符集编码器的 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.lang.Object 继承的方法
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
从类 java.io.Writer 继承的方法
append, append, append, write, write

构造函数详细信息

OutputStreamWriter

public OutputStreamWriter(OutputStream out, String charsetName) throws UnsupportedEncodingException

创建一个使用命名字符集的 OutputStreamWriter。

参数:

参数名称 参数描述
out 输出流
charsetName 支持的字符集的名称

Throws:

Throw名称 Throw描述
UnsupportedEncodingException 如果不支持命名编码

OutputStreamWriter

public OutputStreamWriter(OutputStream out)

创建一个使用默认字符编码的 OutputStreamWriter。

参数:

参数名称 参数描述
out 输出流

OutputStreamWriter

public OutputStreamWriter(OutputStream out, Charset cs)

创建一个使用给定字符集的 OutputStreamWriter。

参数:

参数名称 参数描述
out 输出流
cs 一个字符集

Since:

1.4

OutputStreamWriter

public OutputStreamWriter(OutputStream out, CharsetEncoder enc)

创建一个使用给定字符集编码器的 OutputStreamWriter。

参数:

参数名称 参数描述
out 输出流
enc 一个字符集编码器

Since:

1.4

方法详情

getEncoding

public String getEncoding()

返回此流使用的字符编码的名称。

如果编码具有历史名称,则返回该名称; 否则返回编码的规范名称。

如果此实例是使用 OutputStreamWriter(java.io.OutputStream,java.lang.String) 构造函数创建的,则返回的名称(对于编码是唯一的)可能与传递给构造函数的名称不同。 如果流已关闭,此方法可能会返回 null。

返回:

此编码的历史名称,如果流已关闭,则可能为 null

write

public void write(int c) throws IOException

写入单个字符。

覆盖:

在 Writer 类中写

参数:

参数名称 参数描述
c int 指定要写入的字符

Throws:

Throw名称 Throw描述
IOException 如果发生 I/O 错误

write

public void write(char[] cbuf, int off, int len) throws IOException

写入字符数组的一部分。

指定者:

在 Writer 类中写

参数:

参数名称 参数描述
cbuf 字符缓冲区
off 开始写入字符的偏移量
len 要写入的字符数

Throws:

Throw名称 Throw描述
IOException 如果发生 I/O 错误

write

public void write(String str, int off, int len) throws IOException

写入字符串的一部分。

覆盖:

在 Writer 类中写

参数:

参数名称 参数描述
str 一个字符串
off 开始写入字符的偏移量
len 要写入的字符数

Throws:

Throw名称 Throw描述
IOException 如果发生 I/O 错误

flush

public void flush() throws IOException

冲洗流。

指定者:

在接口 Flushable 中刷新

指定者:

在 Writer 类中刷新

Throws:

Throw名称 Throw描述
IOException 如果发生 I/O 错误

close

public void close() throws IOException

从班级复制的描述:Writer

关闭流,首先刷新它。 一旦流被关闭,进一步的 write() 或 flush() 调用将导致抛出 IOException。 关闭以前关闭的流没有效果。

指定者:

在接口 AutoCloseable 中关闭

指定者:

在接口Closeable中关闭

指定者:

关闭类 Writer

Throws:

Throw名称 Throw描述
IOException 如果发生 I/O 错误