模块 java.base
 java.io

类 CharArrayWriter

java.lang.Object
java.io.Writer
java.io.CharArrayWriter
所有已实现的接口:
Closeable , Flushable , Appendable , AutoCloseable

public class CharArrayWriter extends Writer
此类实现了一个可用作 Writer 的字符缓冲区。当数据写入流时,缓冲区会自动增长。可以使用 toCharArray() 和 toString() 检索数据。

注意:在此类上调用 close() 无效,并且可以在流关闭后调用此类的方法而不生成 IOException。

自从:
1.1
  • 字段摘要

    字段
    修饰符和类型
    Field
    描述
    protected char[]
    存储数据的缓冲区。
    protected int
    缓冲区中的字符数。

    在类 java.io.Writer 中声明的字段

    lock
  • 构造方法总结

    构造方法
    构造方法
    描述
    创建一个新的 CharArrayWriter。
    CharArrayWriter(int initialSize)
    创建具有指定初始大小的新 CharArrayWriter。
  • 方法总结

    修饰符和类型
    方法
    描述
    append(char c)
    将指定的字符附加到此编写器。
    将指定的字符序列附加到此编写器。
    append(CharSequence csq, int start, int end)
    将指定字符序列的子序列附加到此 writer。
    void
    关闭流。
    void
    冲洗流。
    void
    重置缓冲区,以便您可以再次使用它而无需丢弃已分配的缓冲区。
    int
    size()
    返回缓冲区的当前大小。
    char[]
    返回输入数据的副本。
    将输入数据转换为字符串。
    void
    write(char[] c, int off, int len)
    将字符写入缓冲区。
    void
    write(int c)
    向缓冲区写入一个字符。
    void
    write(String str, int off, int len)
    将字符串的一部分写入缓冲区。
    void
    将缓冲区的内容写入另一个字符流。

    在类 java.io.Writer 中声明的方法

    nullWriter, write, write

    在类 java.lang.Object 中声明的方法

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
  • 字段详细信息

    • buf

      protected char[] buf
      存储数据的缓冲区。
    • count

      protected int count
      缓冲区中的字符数。
  • 构造方法详细信息

    • CharArrayWriter

      public CharArrayWriter()
      创建一个新的 CharArrayWriter。
    • CharArrayWriter

      public CharArrayWriter(int initialSize)
      创建具有指定初始大小的新 CharArrayWriter。
      参数:
      initialSize - 指定初始缓冲区大小的 int。
      抛出:
      IllegalArgumentException - 如果 initialSize 为负
  • 方法详情

    • write

      public void write(int c)
      向缓冲区写入一个字符。
      重写:
      write 在类 Writer
      参数:
      c - 指定要写入的字符的 int
    • write

      public void write(char[] c, int off, int len)
      将字符写入缓冲区。
      指定者:
      write 在类 Writer
      参数:
      c - 要写入的数据
      off - 数据中的起始偏移量
      len - 写入的字符数
      抛出:
      IndexOutOfBoundsException - 如果 off 为负数,或 len 为负数,或 off + len 为负数或大于给定数组的长度
    • write

      public void write(String  str, int off, int len)
      将字符串的一部分写入缓冲区。
      重写:
      write 在类 Writer
      参数:
      str - 要写入的字符串
      off - 开始读取字符的偏移量
      len - 要写入的字符数
      抛出:
      IndexOutOfBoundsException - 如果 off 为负数,或 len 为负数,或 off + len 为负数或大于给定字符串的长度
    • writeTo

      public void writeTo(Writer  out) throws IOException
      将缓冲区的内容写入另一个字符流。
      参数:
      out - 要写入的输出流
      抛出:
      IOException - 如果发生 I/O 错误。
    • append

      public CharArrayWriter  append(CharSequence  csq)
      将指定的字符序列附加到此编写器。

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

         out.write(csq.toString()) 

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

      指定者:
      append 在接口 Appendable
      重写:
      append 在类 Writer
      参数:
      csq - 要追加的字符序列。如果 csqnull ,那么四个字符 "null" 会附加到这个 writer。
      返回:
      这位作家
      自从:
      1.5
    • append

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

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

         out.write(csq.subSequence(start, end).toString()) 
      指定者:
      append 在接口 Appendable
      重写:
      append 在类 Writer
      参数:
      csq - 将追加子序列的字符序列。如果 csqnull ,那么字符将被追加,就好像 csq 包含四个字符 "null" 一样。
      start - 子序列中第一个字符的索引
      end - 子序列中最后一个字符之后的字符的索引
      返回:
      这位作家
      抛出:
      IndexOutOfBoundsException - 如果 startend 为负,则 start 大于 end,或者 end 大于 csq.length()
      自从:
      1.5
    • append

      public CharArrayWriter  append(char c)
      将指定的字符附加到此编写器。

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

         out.write(c) 
      指定者:
      append 在接口 Appendable
      重写:
      append 在类 Writer
      参数:
      c - 要追加的 16 位字符
      返回:
      这位作家
      自从:
      1.5
    • reset

      public void reset()
      重置缓冲区,以便您可以再次使用它而无需丢弃已分配的缓冲区。
    • toCharArray

      public char[] toCharArray()
      返回输入数据的副本。
      返回:
      从输入数据复制的字符数组。
    • size

      public int size()
      返回缓冲区的当前大小。
      返回:
      一个表示缓冲区当前大小的 int。
    • toString

      public String  toString()
      将输入数据转换为字符串。
      重写:
      toString 在类 Object
      返回:
      字符串。
    • flush

      public void flush()
      冲洗流。

      CharArrayWriterflush 方法什么都不做。

      指定者:
      flush 在接口 Flushable
      指定者:
      flush 在类 Writer
    • close

      public void close()
      关闭流。此方法不会释放缓冲区,因为它的内容可能仍然需要。注意:在这个类中调用这个方法是没有效果的。
      指定者:
      close 在接口 AutoCloseable
      指定者:
      close 在接口 Closeable
      指定者:
      close 在类 Writer