欢迎访问宙启技术站
智能推送

如何使用Java中的FileReader和BufferedReader函数从文件中读取文本?

发布时间:2023-06-08 07:25:46

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函数时,需要保证读取文件的路径和文件名正确,且文件的编码格式正确。