模块  java.base
软件包  java.io

Class OutputStreamWriter

  • 实现的所有接口
    CloseableFlushableAppendableAutoCloseable
    已知直接子类:
    FileWriter

    public class OutputStreamWriterextends Writer
    OutputStreamWriter是从字符流到字节流的桥接器:使用指定的charset写入其中的字符编码为字节。 它使用的字符集可以通过名称指定,也可以明确指定,或者可以接受平台的默认字符集。

    每次调用write()方法都会导致在给定字符上调用编码转换器。 生成的字节在写入底层输出流之前在缓冲区中累积。 请注意,传递给write()方法的字符不会被缓冲。

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

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

    代理项对是由两者的序列代表的字符char值:在范围内的代理“\ uD800”到“\ uDBFF”随后在范围为“\ uDFFF”一个代理“\ uDC00”。

    格式错误的替代元素是高代理人,后面没有低代理人或低代理人,而代理人之前没有高代理人。

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

    从以下版本开始:
    1.1
    另请参见:
    BufferedWriterOutputStreamCharset
    • 构造方法详细信息

      • 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
        写一个字符串的一部分。
        重写:
        writeWriter
        参数
        str - 一个字符串
        off - 开始写入字符的偏移量
        len - 要写入的字符数
        异常
        IndexOutOfBoundsException - 如果 off为负数,或者 len为负数,或者 off + len为负数或大于给定字符串的长度
        IOException - 如果发生I / O错误