<aside> 💡

字符输出流(Character Output Stream)如何写出数据?

在 Java 中,所有字符输出流的顶层抽象基类是 java.io.Writer。它专门用于写入字符(如 'A', '你', '好'),而不是原始的字节(byte)。

</aside>

1. 核心概念:为什么使用字符流?

Writer 的核心价值正与字符集(如 UTF-8, GBK)相关。

简而言之:Writer = OutputStream + 自动编码

Writer 是一个抽象类,我们通常使用它的具体子类来执行写操作。

2. Writer 的核心方法

Writer 类定义了几个关键的 write 方法,它们是所有子类的基础:

  1. write(int c):
  2. write(char[] cbuf):
  3. write(char[] cbuf, int off, int len):
  4. write(String str):
  5. write(String str, int off, int len):

3. 关键的实现类及用法

我们很少直接用 Writer,而是用它的子类。这里介绍几个最重要的:

A. OutputStreamWriter:字节流到字符流的桥梁

这是最重要Writer。它接收一个 OutputStream(字节输出流)作为参数,并充当一个 "转换器"。它从你这里接收字符,按照你指定的编码集将其转换为字节,然后交给 OutputStream 去写入。

构造方法: