如何使用Java中的FileReader和BufferedReader函数从文件中读取文本?
Java中的FileReader和BufferedReader函数是用来从文件中读取文本的两个重要函数。它们可以很方便地读取文本文件,支持大文件、多行文本、按行读取、跳过注释等各种操作,因此被广泛地应用于Java编程中。
下面将详细介绍如何使用Java中的FileReader和BufferedReader函数从文件中读取文本。
一、FileReader类
FileReader类是Java中用来读取字符流的类。它继承了InputStreamReader类,可以通过构造函数来创建FileReader对象,然后通过read(char[])方法或read()方法来读取文件中的字符。
具体步骤如下:
1. 创建FileReader对象
可以使用FileReader类的构造函数来创建FileReader对象。实例化时需要指定文件的路径。
例如:
FileReader reader = new FileReader("D://test.txt");
2. 读取文件内容
FileReader类可以通过read(char[])方法或read()方法来读取文件中的字符。read(char[])方法可以一次性读取n个字符,其中n为数组长度。read()方法则每次读取一个字符。
例如:
char[] buffer = new char[1024];
int len = reader.read(buffer);
while (len != -1) {
String str = new String(buffer, 0, len);
//处理读取出来的数据
len = reader.read(buffer);
}
2. 关闭文件流
使用完FileReader对象后,需要关闭文件流,释放资源。
例如:
reader.close();
二、BufferedReader类
BufferedReader类是Java中的缓冲流类,一般在读取大文件或者多行文本时使用。它可以包装任意Reader对象,并提供缓冲以及一些文本读取功能。
具体步骤如下:
1. 创建BufferedReader对象
可以使用BufferedReader类的构造函数来创建BufferedReader对象。实例化时需要将Reader对象作为参数。例如:
BufferedReader reader = new BufferedReader(new FileReader("D://test.txt"));
2. 读取文件内容
BufferedReader类可以通过readLine()方法来读取文件中的每一行数据。readLine()方法会返回该行之前的所有字符,不包括行终止符。每次读取一行,直到文件末尾返回null。
例如:
String line = reader.readLine();
while (line != null) {
//处理读取出来的数据
line = reader.readLine();
}
3. 关闭文件流
使用完BufferedReader对象后,需要关闭文件流,释放资源。
例如:
reader.close();
三、Demo示例
下面将给出一个完整的使用FileReader和BufferedReader函数从文件中读取文本的Demo示例。
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
public class FileReadDemo {
public static void main(String[] args) {
//文件路径
String path = "D://test.txt";
//文件对象
File file = new File(path);
//BufferedReader对象
BufferedReader reader = null;
try {
//创建FileReader对象,并用BufferedReader包装
reader = new BufferedReader(new FileReader(file));
//每次读取的字符数组
char[] buffer = new char[1024];
int len = reader.read(buffer);
while (len != -1) {
String str = new String(buffer, 0, len);
System.out.print(str);
len = reader.read(buffer);
}
//关闭文件流
reader.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
该Demo从文件中读取所有的字符,并打印到控制台。其中,使用了FileReader的read方法和BufferedReader的close方法。
四、总结
本文介绍了如何使用Java中的FileReader和BufferedReader函数从文件中读取文本。FileReader类适用于读取小型文件和字符文件,而BufferedReader类则适用于读取大型文件和多行文本。在处理大型文件和多行文本时,使用BufferedReader会更加高效。
最后,需要注意的是,在使用FileReader和BufferedReader函数时,需要保证读取文件的路径和文件名正确,且文件的编码格式正确。
