Module java.base
Package java.io

Class 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 Summary

    Fields
    Modifier and Type
    Field
    Description
    protected char[]
    buf
    存储数据的缓冲区。
    protected int
    缓冲区中的字符数。

    Fields declared in class java.io.Writer

    lock
  • Constructor Summary

    Constructors
    Constructor
    Description
    创建一个新的CharArrayWriter。
    CharArrayWriter(int initialSize)
    创建一个具有指定初始大小的新CharArrayWriter。
  • Method Summary

    Modifier and Type
    Method
    Description
    append(char c)
    将指定的字符追加到此writer。
    将指定的字符序列追加到此writer。
    append(CharSequence csq, int start, int end)
    将指定字符序列的子序列追加到此writer。
    void
    close()
    关闭流。
    void
    flush()
    刷新流。
    void
    reset()
    重置缓冲区,以便您可以再次使用它而不丢弃已分配的缓冲区。
    int
    size()
    返回缓冲区的当前大小。
    char[]
    返回输入数据的副本。
    将输入数据转换为字符串。
    void
    write(char[] c, int off, int len)
    将字符写入缓冲区。
    void
    write(int c)
    将字符写入缓冲区。
    void
    write(String str, int off, int len)
    将字符串的一部分写入缓冲区。
    void
    writeTo(Writer out)
    将缓冲区的内容写入另一个字符流。

    Methods declared in class java.io.Writer

    nullWriter, write, write

    Methods declared in class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
  • Field Details

    • buf

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

      protected int count
      缓冲区中的字符数。
  • Constructor Details

    • CharArrayWriter

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

      public CharArrayWriter(int initialSize)
      创建一个具有指定初始大小的新CharArrayWriter。
      参数:
      initialSize - 指定初始缓冲区大小的整数。
      抛出:
      IllegalArgumentException - 如果initialSize为负
  • Method Details

    • write

      public void write(int c)
      将字符写入缓冲区。
      覆盖:
      write 在类 Writer
      参数:
      c - 指定要写入的字符的整数
    • 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)
      将指定的字符序列追加到此writer。

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

          out.write(csq.toString())
      

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

      指定为:
      append 在接口 Appendable
      覆盖:
      append 在类 Writer
      参数:
      csq - 要追加的字符序列。如果csqnull,则将四个字符"null"追加到此writer。
      返回:
      此writer
      自从:
      1.5
    • append

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

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

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

      public CharArrayWriter append(char c)
      将指定的字符追加到此writer。

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

          out.write(c)
      
      指定为:
      append 在接口 Appendable
      覆盖:
      append 在类 Writer
      参数:
      c - 要追加的16位字符
      返回:
      此writer
      自从:
      1.5
    • reset

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

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

      public int size()
      返回缓冲区的当前大小。
      返回:
      代表缓冲区当前大小的整数。
    • 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