Java中对文本文件操作用什么I/O流?
在Java中,对文本文件的操作主要使用字符流(Character Streams)和字节流(Byte Streams)。对于文本文件,通常推荐使用字符流,因为它们能够更好地处理字符编码(如UTF-8、UTF-16等)。以下是一些常用的字符流和字节流类:
下面是一个使用字符流读取和写入文本文件的示例:
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
public class ReadFileExample {
public static void main(String[] args) {
String filePath = "example.txt"; // 文件路径
BufferedReader reader = null;
try {
// 创建BufferedReader对象
reader = new BufferedReader(new FileReader(filePath));
String line;
// 逐行读取文件内容
while ((line = reader.readLine()) != null) {
System.out.println(line);
}
} catch (IOException e) {
e.printStackTrace();
} finally {
// 关闭流
try {
if (reader != null) {
reader.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;
public class WriteFileExample {
public static void main(String[] args) {
String filePath = "output.txt"; // 输出文件路径
BufferedWriter writer = null;
try {
// 创建BufferedWriter对象
writer = new BufferedWriter(new FileWriter(filePath));
writer.write("Hello, World!");
writer.newLine(); // 写入换行
writer.write("This is a text file.");
} catch (IOException e) {
e.printStackTrace();
} finally {
// 关闭流
try {
if (writer != null) {
writer.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
FileReader
和 FileWriter
一起使用。try (BufferedReader reader = new BufferedReader(new FileReader(filePath))) {
// 读取文件内容
} catch (IOException e) {
e.printStackTrace();
}
IOException
,因此需要进行异常处理,以确保程序的健壮性。在Java中,处理文本文件时,推荐使用字符流(如 BufferedReader
和 BufferedWriter
),因为它们能够更好地处理字符数据和字符编码。通过合理使用这些流类,可以高效地进行文件的读写操作。