首页 > 解决方案 > 如何在 Java 中构建 FileReader 和 BufferedReader 构造函数?

问题描述

我目前正在开发一个项目,在该项目中我正在构建一个项目,该项目读取文件并计算单词和其他事件的出现次数(例如单词“the”出现的次数)等等。我见过很多使用 FileReader 和 BufferedReader 的例子,但它们在 main 中使用,我希望在另一个文件的构造函数中使用它,如下所示:

import java.util.*;
import java.io.*;

public class TextParser {
    private FileReader fr;
    private BufferedReader br;
    private File file;
    private String line;

    public TextParser() {

        this.file = new File("textParser.txt");
        this.br = null;

            try {

            this.fr = new FileReader(file);
            this.br = new BufferedReader(this.fr);

            } catch (IOException e) {
                e.printStackTrace();
            } finally {
                try {
                    if (this.br != null) {
                        this.br.close();
                    }

                    if (this.fr != null) {
                        this.fr.close();
                    }
                } catch (IOException ee) {
                    ee.printStackTrace();
                }
            }   
    }


}

在同一个类中,我希望创建每个计算出现次数的方法,然后调用 main 中的所有内容。我见过的大多数示例都直接在 main 中执行此操作,但是我可以在这样的构造函数中使用 FileReader 和 BufferedReader 吗?我将如何进行测试?

标签: javabufferedreaderfilereader

解决方案


这对于在构造函数中执行此代码是有效的。如果您想多次使用 BufferedReader,则必须重新初始化它,例如使用新的实例化。

顺便说一句,构造函数应该仅用于初始化目的。我的建议是在构造函数中初始化 BufferedReader 和 FileReader,在

protected void finalize() throws Throwable {}

方法,当垃圾收集器删除对象时调用,并对方法上的流进行操作。如果您对流有多种用途,您还可以创建一个方法来重置它。


推荐阅读