文章目录
BufferedWriter
概要
BufferedWriter
是 Java IO 类库中的一个类,用于将文本写入字符输出流
。它为写入操作提供缓冲区,从而提高了写入字符、数组和字符串的效率。BufferedWriter 类通过减少实际写入底层输出流的次数,显著提高了 I/O 操作的性能。
BufferedWriter 的基本用法
- 创建 BufferedWriter
要使用 BufferedWriter,需要将其包装在一个 FileWriter 或其他 Writer 对象中。
BufferedWriter writer = new BufferedWriter(new FileWriter("output.txt"));
- 写入数据
BufferedWriter 提供了多种写入数据的方法,如 write()
和 newLine()
等。
import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;
public class Main {
public static void main(String[] args) {
try {
BufferedWriter writer = new BufferedWriter(new FileWriter("output.txt"));
writer.write("Hello, World!");
writer.newLine(); // 写入一个换行符
writer.write("This is a new line.");
writer.close(); // 关闭流并刷新缓冲区
} catch (IOException e) {
e.printStackTrace();
}
}
}
BufferedWriter 的主要方法
write()
write()
方法用于将字符、字符数组或字符串写入缓冲区。
writer.write('A'); // 写入单个字符
writer.write("Hello, World!"); // 写入字符串
char[] chars = {'H', 'e', 'l', 'l', 'o'};
writer.write(chars); // 写入字符数组
newLine()
newLine()
方法用于写入一个平台独立的换行符。
writer.newLine();
flush()
flush()
方法用于刷新缓冲区,将缓冲区中的数据实际写入底层输出流。
writer.flush();
close()
close()
方法用于关闭流,并刷新缓冲区。如果在关闭前不调用 flush()
,close()
方法会自动调用它。
writer.close();
使用 BufferedWriter 的注意事项
-
缓冲区大小:默认缓冲区大小通常足够,但在处理大数据量时,可以指定自定义缓冲区大小。
BufferedWriter writer = new BufferedWriter(new FileWriter("output.txt"), 8192);
-
异常处理:所有的 IO 操作都可能抛出 IOException,因此需要适当的异常处理。
-
关闭流:始终在完成写入操作后关闭流,以释放资源并确保数据写入到底层输出流。
BufferedReader
概要
BufferedReader
是 Java IO 类库中的一个类,用于从字符输入流中读取文本。它为读取操作提供缓冲区,从而提高了读取字符、数组和行的效率。BufferedReader 通过减少实际读取底层输入流的次数,显著提高了 I/O 操作的性能。
BufferedReader 的基本用法
- 创建 BufferedReader
要使用 BufferedReader,需要将其包装在一个 FileReader 或其他 Reader 对象中。以下是创建 BufferedReader 的基本语法:
BufferedReader reader = new BufferedReader(new FileReader("input.txt"));
- 读取数据
BufferedReader 提供了多种读取数据的方法,如 read()
、readLine()
等。
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
public class Main {
public static void main(String[] args) {
try {
BufferedReader reader = new BufferedReader(new FileReader("input.txt"));
String line;
while ((line = reader.readLine()) != null) {
System.out.println(line);
}
reader.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
BufferedReader 的主要方法
read()
read()
方法用于读取单个字符或字符数组。它有以下几种重载形式:
int c = reader.read(); // 读取单个字符
char[] buffer = new char[1024];
int numCharsRead = reader.read(buffer); // 读取字符数组
readLine()
readLine()
方法用于读取一行文本,返回一个字符串。若已到达流的末尾,则返回 null
。
String line = reader.readLine();
skip()
skip()
方法用于跳过指定数量的字符。
reader.skip(100); // 跳过 100 个字符
ready()
ready()
方法用于检查是否可以无阻塞地读取字符。
if (reader.ready()) {
System.out.println("Ready to read!");
}
close()
close()
方法用于关闭流,并释放相关资源。
reader.close();
使用 BufferedReader 的注意事项
-
缓冲区大小:默认缓冲区大小通常足够,但在处理大数据量时,可以指定自定义缓冲区大小。
BufferedReader reader = new BufferedReader(new FileReader("input.txt"), 8192);
-
异常处理:所有的 IO 操作都可能抛出 IOException,因此需要适当的异常处理。
-
关闭流:始终在完成读取操作后关闭流,以释放资源并确保数据读取的完整性。
总结
BufferedWriter 是一个强大的工具,用于高效地写入字符流。通过提供缓冲区,它显著减少了写入底层输出流的次数,提高了写操作的性能。BufferedReader 是一个强大的工具,用于高效地读取字符流。
❤觉得有用的可以留个关注~~❤