Module  java.base
软件包  java.io

Class StringWriter

  • All Implemented Interfaces:
    CloseableFlushableAppendableAutoCloseable


    public class StringWriter
    extends Writer
    在字符串缓冲区中收集其输出的字符流,然后可以用于构造字符串。

    关闭StringWriter没有任何效果。 该流中的方法可以在流关闭后调用,而不生成IOException

    从以下版本开始:
    1.1
    • 构造方法详细信息

      • StringWriter

        public StringWriter​()
        使用默认的初始字符串缓冲区大小创建一个新的字符串写入器。
      • StringWriter

        public StringWriter​(int initialSize)
        使用指定的初始字符串缓冲区大小创建一个新的字符串写入器。
        参数
        initialSize - 自动展开之前将适合此缓冲区的 char值的数量
        异常
        IllegalArgumentException - 如果 initialSize为负数
    • 方法详细信息

      • write

        public void write​(int c)
        写一个字符
        重写:
        writeWriter
        参数
        c - int指定要写入的字符
      • write

        public void write​(char[] cbuf,
                          int off,
                          int len)
        写一个字符数组的一部分。
        Specified by:
        write在类 Writer
        参数
        cbuf - 字符数组
        off - 开始编写字符的偏移量
        len - 要写入的字符数
        异常
        IndexOutOfBoundsException - 如果 off为负数,或 len为负数,或 off + len为负数或大于给定数组的长度
      • write

        public void write​(String str)
        写一个字符串
        重写:
        writeWriter
        参数
        str - 要写入的字符串
      • write

        public void write​(String str,
                          int off,
                          int len)
        写一个字符串的一部分
        重写:
        writeWriter
        参数
        str - 要写入的字符串
        off - 开始写入字符的偏移量
        len - 要写入的字符数
        异常
        IndexOutOfBoundsException - 如果 off为负数,或 len为负数,或 off + len为负数或大于给定字符串的长度
      • append

        public StringWriter append​(CharSequence csq)
        将指定的字符序列附加到此作者。

        对这种out.append(csq)形式的方法的调用与调用的方式完全相同

          out.write(csq.toString()) 

        取决于规范toString字符序列csq ,整个序列可以不追加。 例如,调用字符缓冲区的toString方法将返回一个子序列,其内容取决于缓冲区的位置和限制。

        Specified by:
        append在接口 Appendable
        重写:
        append在类 Writer
        参数
        csq - 要追加的字符序列。 如果csqnull ,则该"null"器附加四个字符"null"
        结果
        这位作家
        从以下版本开始:
        1.5
      • append

        public StringWriter append​(CharSequence csq,
                                   int start,
                                   int end)
        将指定字符序列的子序列附加到此作者。

        形式的这种方法的调用out.append(csq, start, end)csq不是null ,行为以完全相同的方式调用

           out.write(csq.subSequence(start, end).toString())  
        Specified by:
        append在接口 Appendable
        重写:
        append在类 Writer
        参数
        csq - 附加子序列的字符序列。 如果csqnull ,那么字符将被追加,就像csq包含四个字符"null"
        start - 子序列中第一个字符的索引
        end - 子序列中最后一个字符后面的字符的索引
        结果
        这位作家
        异常
        IndexOutOfBoundsException - 如果 startend为负数,则 start大于 end ,或 end大于 csq.length()
        从以下版本开始:
        1.5
      • append

        public StringWriter append​(char c)
        将指定的字符附加到此作者。

        调用此方法的形式为out.append(c)行为方式与调用完全相同

          out.write(c) 
        Specified by:
        append在接口 Appendable
        重写:
        appendWriter
        参数
        c - 要追加的16位字符
        结果
        这位作家
        从以下版本开始:
        1.5
      • toString

        public String toString​()
        以缓冲区的当前值作为字符串返回。
        重写:
        toStringObject
        结果
        对象的字符串表示形式。
      • getBuffer

        public StringBuffer getBuffer​()
        返回字符串缓冲区本身。
        结果
        StringBuffer保存当前缓冲区值。