【发布时间】:2018-08-23 19:09:40
【问题描述】:
我目前正在做一个项目,在该项目中我正在构建一个项目,该项目读取文件并计算单词和其他出现的次数(例如单词“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 吗?我将如何进行测试?
【问题讨论】:
-
构造函数用于初始化变量,这就是您在示例中所做的基本工作。我认为你所做的是完全有效的。
-
顺便说一句,如果在初始化后立即关闭它们,则不能使用 FileReader 和 BufferedReader。最好在您要创建的每个方法中使用新对象初始化 fr 和 br 引用。并使用 Close-with-resources,这样对象将自动为您关闭。请参阅本教程以了解如何做到这一点tutorials.jenkov.com/java-io/bufferedreader.html
标签: java bufferedreader filereader