Java中的FileReader和BufferedReader读取文件的方法
FileReader和BufferedReader是Java中常用的文件读取类,用于读取文本文件。它们有不同的读取方式和特点,本文将介绍它们的使用方法。
一、FileReader的使用方法
FileReader是Java中的一个文件读取类,用于读取文本文件。它以字符(char)为单位读取文件,适合于读取文本文件。其读取方式如下:
1. 创建FileReader对象
创建FileReader对象时需要指定要读取的文件路径,可以使用File类来指定文件路径,例如:
File file = new File("test.txt");
FileReader reader = new FileReader(file);
2. 读取文件内容
通过调用FileReader的read()方法,可以一次读取一个字符,读取到文件结尾返回-1。例如:
int charRead;
while ((charRead = reader.read()) != -1) {
System.out.print((char)charRead);
}
需要注意的是,每次读取一个字符会造成IO操作,因此在实际使用中,应该尽量减少读取次数,可以使用缓冲读取的方式,稍后会介绍。
3. 关闭流
在读取完文件后,需要关闭文件流,释放系统资源。例如:
reader.close();
二、BufferedReader的使用方法
BufferedReader是Java中的另一个文件读取类,与FileReader相比,它具有更强的读取效率和性能。它可以一次读取多个字符,同时可以缓存字符,实现缓冲读取。其读取方式如下:
1. 创建BufferedReader对象
创建BufferedReader对象时需要指定要读取的文件路径,可以使用File类来指定文件路径,例如:
File file = new File("test.txt");
FileReader reader = new FileReader(file);
BufferedReader bufferedReader = new BufferedReader(reader);
2. 读取文件内容
通过调用BufferedReader的readLine()方法,可以一次读取一行内容,读取到文件结尾返回null。例如:
String line;
while ((line = bufferedReader.readLine()) != null) {
System.out.println(line);
}
需要注意的是,readLine()方法会自动将行尾的换行符(
)去掉,因此输出时不会出现多余的空行。
3. 关闭流
在读取完文件后,需要关闭文件流,释放系统资源。例如:
bufferedReader.close();
三、使用BufferedReader的缓冲读取方式
通过使用BufferedReader的缓冲读取方式,可以极大地提高文件读取效率。具体来说,可以设置缓存区大小,将文件内容一次性读入缓存区,再逐个取出字符,避免多次IO操作。其方式如下:
1. 创建BufferedReader对象
创建BufferedReader对象时需要指定要读取的文件路径,可以使用File类来指定文件路径,例如:
File file = new File("test.txt");
FileReader reader = new FileReader(file);
BufferedReader bufferedReader = new BufferedReader(reader, 1024);
其中,第二个参数是缓冲区大小,单位是字节(byte)。
2. 读取文件内容
通过调用BufferedReader的read()方法,可以一次读取多个字符,例如:
char[] buffer = new char[1024];
int length;
while ((length = bufferedReader.read(buffer)) != -1) {
System.out.println(new String(buffer, 0, length));
}
需要注意的是,read()方法的返回值是已经读取的字符数,而不是缓冲区大小。
3. 关闭流
在读取完文件后,需要关闭文件流,释放系统资源。例如:
bufferedReader.close();
四、结论
FileReader和BufferedReader是Java中常用的文件读取类,它们有不同的读取方式和特点:
1. FileReader以字符(char)为单位读取文件,适合于读取文本文件。
2. BufferedReader可以一次读取多个字符,同时可以缓存字符,实现缓冲读取。
3. 通过使用BufferedReader的缓冲读取方式,可以极大地提高文件读取效率。
