java.lang.Object
java.io.Writer
- 所有已实现的接口:
Closeable,Flushable,Appendable,AutoCloseable
- 已知子类:
BufferedWriter,CharArrayWriter,FilterWriter,OutputStreamWriter,PipedWriter,PrintWriter,StringWriter
用于写入字符流的抽象类。子类必须实现的唯一方法是 write(char[], int, int)、flush() 和 close()。然而,大多数子类将重写此处定义的一些方法,以提供更高的效率和/或附加功能。
- 自从:
- 1.1
- 参见:
-
字段摘要
字段 -
构造方法总结
构造方法 -
方法总结
修饰符和类型方法描述append(char c) 将指定的字符附加到此编写器。append(CharSequence csq) 将指定的字符序列附加到此编写器。append(CharSequence csq, int start, int end) 将指定字符序列的子序列附加到此 writer。abstract voidclose()关闭流,首先冲洗它。abstract voidflush()冲洗流。static Writer返回一个丢弃所有字符的新Writer。voidwrite(char[] cbuf) 写入一个字符数组。abstract voidwrite(char[] cbuf, int off, int len) 写入字符数组的一部分。voidwrite(int c) 写入单个字符。void写一个字符串。void写入字符串的一部分。
-
字段详细信息
-
lock
用于同步此流上的操作的对象。为了提高效率,字符流对象可以使用自身以外的对象来保护临界区。因此,子类应该使用该字段中的对象,而不是this或同步方法。
-
-
构造方法详细信息
-
Writer
protected Writer()创建一个新的字符流编写器,其关键部分将在编写器本身上同步。 -
Writer
创建一个新的字符流编写器,其关键部分将在给定对象上同步。- 参数:
lock- 要同步的对象
-
-
方法详情
-
nullWriter
返回一个丢弃所有字符的新Writer。返回的流最初是打开的。通过调用close()方法关闭流。对close()的后续调用无效。当流打开时,
append(char)、append(CharSequence)、append(CharSequence, int, int)、flush()、write(int)、write(char[])和write(char[], int, int)方法什么都不做。流关闭后,这些方法都会抛出IOException。未指定用于同步返回的
Writer上的操作的object。- 返回:
-
一个
Writer丢弃所有字符 - 自从:
- 11
-
write
写入单个字符。要写入的字符包含在给定整数值的低 16 位中;忽略高 16 位。打算支持有效的单字符输出的子类应该重写这个方法。
- 参数:
c- 指定要写入的字符的 int- 抛出:
IOException- 如果发生 I/O 错误
-
write
写入一个字符数组。- 参数:
cbuf- 要写入的字符数组- 抛出:
IOException- 如果发生 I/O 错误
-
write
写入字符数组的一部分。- 参数:
cbuf- 字符数组off- 开始写入字符的偏移量len- 要写入的字符数- 抛出:
IndexOutOfBoundsException- 如果off为负数,或len为负数,或off + len为负数或大于给定数组的长度,则实现应抛出此异常IOException- 如果发生 I/O 错误
-
write
写一个字符串。- 参数:
str- 要写入的字符串- 抛出:
IOException- 如果发生 I/O 错误
-
write
写入字符串的一部分。- 实现要求:
-
此类中的实现针对指定条件抛出
IndexOutOfBoundsException;覆盖方法可能会选择其他方式。 - 参数:
str- 一个字符串off- 开始写入字符的偏移量len- 要写入的字符数- 抛出:
IndexOutOfBoundsException- 如果off为负数,或len为负数,或off + len为负数或大于给定字符串的长度,则实现应抛出此异常IOException- 如果发生 I/O 错误
-
append
将指定的字符序列附加到此编写器。对
out.append(csq)形式的方法的调用与调用的行为完全相同out.write(csq.toString())
根据字符序列
csq的toString规范,可能不会附加整个序列。例如,调用字符缓冲区的toString方法将返回一个子序列,其内容取决于缓冲区的位置和限制。- 指定者:
append在接口Appendable中- 参数:
csq- 要追加的字符序列。如果csq是null,那么四个字符"null"会附加到这个 writer。- 返回:
- 这位作家
- 抛出:
IOException- 如果发生 I/O 错误- 自从:
- 1.5
-
append
将指定字符序列的子序列附加到此 writer。Appendable。当
csq不是null时调用out.append(csq, start, end)形式的方法的行为与调用完全相同out.write(csq.subSequence(start, end).toString())- 指定者:
append在接口Appendable中- 参数:
csq- 将追加子序列的字符序列。如果csq是null,那么字符将被追加,就好像csq包含四个字符"null"一样。start- 子序列中第一个字符的索引end- 子序列中最后一个字符之后的字符的索引- 返回:
- 这位作家
- 抛出:
IndexOutOfBoundsException- 如果start或end为负,则start大于end,或者end大于csq.length()IOException- 如果发生 I/O 错误- 自从:
- 1.5
-
append
将指定的字符附加到此编写器。对
out.append(c)形式的方法的调用与调用的行为完全相同out.write(c)
- 指定者:
append在接口Appendable中- 参数:
c- 要追加的 16 位字符- 返回:
- 这位作家
- 抛出:
IOException- 如果发生 I/O 错误- 自从:
- 1.5
-
flush
冲洗流。如果流已将来自各种 write() 方法的任何字符保存在缓冲区中,请立即将它们写入预期目标。然后,如果该目的地是另一个字符或字节流,则将其刷新。因此,一次 flush() 调用将刷新 Writers 和 OutputStreams 链中的所有缓冲区。如果此流的预期目标是底层操作系统提供的抽象,例如文件,则刷新流保证仅将先前写入流的字节传递给操作系统进行写入;它不保证它们确实被写入物理设备,例如磁盘驱动器。
- 指定者:
flush在接口Flushable中- 抛出:
IOException- 如果发生 I/O 错误
-
close
关闭流,首先冲洗它。流关闭后,进一步的 write() 或 flush() 调用将导致抛出 IOException。关闭之前关闭的流没有任何效果。- 指定者:
close在接口AutoCloseable中- 指定者:
close在接口Closeable中- 抛出:
IOException- 如果发生 I/O 错误
-