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