java.lang.Object
java.io.Writer
java.io.CharArrayWriter
- 所有已实现的接口:
Closeable,Flushable,Appendable,AutoCloseable
此类实现了一个可用作 Writer 的字符缓冲区。当数据写入流时,缓冲区会自动增长。可以使用 toCharArray() 和 toString() 检索数据。
注意:在此类上调用 close() 无效,并且可以在流关闭后调用此类的方法而不生成 IOException。
- 自从:
- 1.1
-
字段摘要
字段 -
构造方法总结
构造方法 -
方法总结
修饰符和类型方法描述append(char c) 将指定的字符附加到此编写器。append(CharSequence csq) 将指定的字符序列附加到此编写器。append(CharSequence csq, int start, int end) 将指定字符序列的子序列附加到此 writer。voidclose()关闭流。voidflush()冲洗流。voidreset()重置缓冲区,以便您可以再次使用它而无需丢弃已分配的缓冲区。intsize()返回缓冲区的当前大小。char[]返回输入数据的副本。toString()将输入数据转换为字符串。voidwrite(char[] c, int off, int len) 将字符写入缓冲区。voidwrite(int c) 向缓冲区写入一个字符。void将字符串的一部分写入缓冲区。void将缓冲区的内容写入另一个字符流。在类 java.io.Writer 中声明的方法
nullWriter, write, write
-
字段详细信息
-
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
public void write(char[] c, int off, int len) 将字符写入缓冲区。- 指定者:
write在类Writer中- 参数:
c- 要写入的数据off- 数据中的起始偏移量len- 写入的字符数- 抛出:
IndexOutOfBoundsException- 如果off为负数,或len为负数,或off + len为负数或大于给定数组的长度
-
write
将字符串的一部分写入缓冲区。- 重写:
write在类Writer中- 参数:
str- 要写入的字符串off- 开始读取字符的偏移量len- 要写入的字符数- 抛出:
IndexOutOfBoundsException- 如果off为负数,或len为负数,或off + len为负数或大于给定字符串的长度
-
writeTo
将缓冲区的内容写入另一个字符流。- 参数:
out- 要写入的输出流- 抛出:
IOException- 如果发生 I/O 错误。
-
append
将指定的字符序列附加到此编写器。对
out.append(csq)形式的方法的调用与调用的行为完全相同out.write(csq.toString())
根据字符序列
csq的toString规范,可能不会附加整个序列。例如,调用字符缓冲区的toString方法将返回一个子序列,其内容取决于缓冲区的位置和限制。- 指定者:
append在接口Appendable中- 重写:
append在类Writer中- 参数:
csq- 要追加的字符序列。如果csq是null,那么四个字符"null"会附加到这个 writer。- 返回:
- 这位作家
- 自从:
- 1.5
-
append
将指定字符序列的子序列附加到此 writer。当
csq不是null时调用out.append(csq, start, end)形式的方法,其行为与调用完全相同out.write(csq.subSequence(start, end).toString())
- 指定者:
append在接口Appendable中- 重写:
append在类Writer中- 参数:
csq- 将追加子序列的字符序列。如果csq是null,那么字符将被追加,就好像csq包含四个字符"null"一样。start- 子序列中第一个字符的索引end- 子序列中最后一个字符之后的字符的索引- 返回:
- 这位作家
- 抛出:
IndexOutOfBoundsException- 如果start或end为负,则start大于end,或者end大于csq.length()- 自从:
- 1.5
-
append
将指定的字符附加到此编写器。对
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
将输入数据转换为字符串。 -
flush
public void flush()冲洗流。CharArrayWriter的flush方法什么都不做。 -
close
public void close()关闭流。此方法不会释放缓冲区,因为它的内容可能仍然需要。注意:在这个类中调用这个方法是没有效果的。
-