我目前正在一个项目中,正在构建一个项目,该项目读取文件并计算单词的出现次数和其他出现次数(例如单词“ 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吗?我将如何进行测试?
答案 0 :(得分:0)
这对于在构造函数中执行此代码有效。如果要多次使用BufferedReader,则必须重新初始化它,例如,使用新的实例。
顺便说一句,构造函数应仅用于初始化目的。我的建议是在构造函数中初始化BufferedReader和FileReader,并在
上将其关闭protected void finalize() throws Throwable {}
方法,当垃圾回收器删除对象并在方法上对流进行操作时调用。如果您多次使用此流,则还可以创建一种方法来重置它。