如何在Java中构建FileReader和BufferedReader构造函数?

时间:2018-08-23 19:09:40

标签: java bufferedreader filereader

我目前正在一个项目中,正在构建一个项目,该项目读取文件并计算单词的出现次数和其他出现次数(例如单词“ 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吗?我将如何进行测试?

1 个答案:

答案 0 :(得分:0)

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

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

上将其关闭
protected void finalize() throws Throwable {}

方法,当垃圾回收器删除对象并在方法上对流进行操作时调用。如果您多次使用此流,则还可以创建一种方法来重置它。