阅读(2286) (0)

鸿蒙OS BufferedWriter

2022-10-17 09:36:16 更新

BufferedWriter

java.lang.Object

|---java.io.Writer

|---|---java.io.BufferedWriter

public class BufferedWriter
extends Writer

将文本写入字符输出流,缓冲字符,以便高效写入单个字符、数组和字符串。

可以指定缓冲区大小,也可以接受默认大小。 对于大多数用途,默认值足够大。

提供了一个 newLine() 方法,它使用系统属性 line.separator 定义的平台自己的行分隔符概念。 并非所有平台都使用换行符 ('\n') 来终止行。 因此,调用此方法来终止每个输出行优于直接写入换行符。

通常,Writer 将其输出立即发送到底层字符或字节流。 除非需要快速输出,否则建议将 BufferedWriter 包装在任何 write() 操作可能代价高昂的 Writer 周围,例如 FileWriters 和 OutputStreamWriters。 例如,

 PrintWriter out
   = new PrintWriter(new BufferedWriter(new FileWriter("foo.out")));

将 PrintWriter 的输出缓冲到文件中。 如果没有缓冲,每次调用 print() 方法都会导致字符转换为字节,然后立即写入文件,这可能非常低效。

Since:

JDK1.1

字段摘要

从类 java.io.Writer 继承的字段
lock

构造函数摘要

构造函数 描述
BufferedWriter(Writer out) 创建使用默认大小的输出缓冲区的缓冲字符输出流。
BufferedWriter(Writer out, int sz) 创建一个使用给定大小的输出缓冲区的新缓冲字符输出流。

方法总结

修饰符和类型 方法 描述
void close() 关闭流,首先刷新它。
void flush() 冲洗流。
void newLine() 写入行分隔符。
void write(char[] cbuf, int off, int len) 写入字符数组的一部分。
void write(int c) 写入单个字符。
void write(String s, int off, int len) 写入字符串的一部分。
从类 java.lang.Object 继承的方法
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
从类 java.io.Writer 继承的方法
append, append, append, write, write

构造函数详细信息

BufferedWriter

public BufferedWriter(Writer out)

创建使用默认大小的输出缓冲区的缓冲字符输出流。

参数:

参数名称 参数描述
out 输入流

BufferedWriter

public BufferedWriter(Writer out, int sz)

创建一个使用给定大小的输出缓冲区的新缓冲字符输出流。

参数:

参数名称 参数描述
out 输入流
sz 输出缓冲区大小,一个正整数

Throws:

Throw名称 Throw描述
IllegalArgumentException 如果 sz <= 0

方法详情

write

public void write(int c) throws IOException

写入单个字符。

覆盖:

在 Writer 类中写

参数:

参数名称 参数描述
c int 指定要写入的字符

Throws:

Throw名称 Throw描述
IOException 如果发生 I/O 错误

write

public void write(char[] cbuf, int off, int len) throws IOException

写入字符数组的一部分。

通常,此方法将给定数组中的字符存储到此流的缓冲区中,并根据需要将缓冲区刷新到底层流。 但是,如果请求的长度至少与缓冲区一样大,则此方法将刷新缓冲区并将字符直接写入底层流。 因此冗余的 BufferedWriters 不会不必要地复制数据。

指定者:

在 Writer 类中写

参数:

参数名称 参数描述
cbuf 一个字符数组
off 开始读取字符的偏移量
len 要写入的字符数

Throws:

Throw名称 Throw描述
IOException 如果发生 I/O 错误

write

public void write(String s, int off, int len) throws IOException

写入字符串的一部分。

如果 len 参数的值为负数,则不写入任何字符。 这与超类中该方法的规范相反,该规范要求抛出 IndexOutOfBoundsException。

覆盖:

在 Writer 类中写

参数:

参数名称 参数描述
s 要写入的字符串
off 开始读取字符的偏移量
len 要写入的字符数

Throws:

Throw名称 Throw描述
IOException 如果发生 I/O 错误

newLine

public void newLine() throws IOException

写入行分隔符。 行分隔符字符串由系统属性 line.separator 定义,不一定是单个换行符 ('\n')。

Throws:

Throw名称 Throw描述
IOException 如果发生 I/O 错误

flush

public void flush() throws IOException

冲洗流。

指定者:

在接口 Flushable 中刷新

指定者:

在 Writer 类中刷新

Throws:

Throw名称 Throw描述
IOException 如果发生 I/O 错误

close

public void close() throws IOException

从班级复制的描述:Writer

关闭流,首先刷新它。 一旦流被关闭,进一步的 write() 或 flush() 调用将导致抛出 IOException。 关闭以前关闭的流没有效果。

指定者:

在接口 AutoCloseable 中关闭

指定者:

在接口Closeable中关闭

指定者:

关闭类Writer

Throws:

Throw名称 Throw描述
IOException 如果发生 I/O 错误