过于复杂的目录迭代结构破坏程序的连续性和可理解性

时间:2015-02-17 03:34:59

标签: java io

我正在尝试从具有/train形式的基础子结构的目录中读取许多文件,其中分别有“/atheism/politics,{{1 }&每个/science包含许多文件。我

我需要阅读所有文件中的所有单词以创建一个全局“词典”,每个文件中的每个单词都代表一次(此时我并不十分担心词干或任何那些花哨的东西! )。

事实上,我正在使用这个复杂的迭代结构,每当我试图以一种清醒的方式思考我必须做的事情时,就会让我感到痛苦。我怎么能简化和制服这个笨重的野兽!

/sports

1 个答案:

答案 0 :(得分:1)

我很确定你需要/home之后的用户文件夹。此外,您可以使用File(String, String)构造函数和for-each loop。把它放在一起,我想你想要像

这样的东西
static String PATH = "Workbench/SUTD/ISTD_50.570/assignments/data/train";

// the global list of all words across all articles
static Set<String> GLOBO_DICT = new HashSet<String>();

public static void main(String[] args) throws IOException {
    // each of the diferent categories
    String[] categories = { "/atheism", "/politics", "/science", "/sports" };
    File trainpath = new File(System.getProperty("user.home"), PATH);
    // cycle through all categories once to populate the global dict
    for (String cycle : categories) {
        File directory = new File(trainpath, cycle);
        iterateDirectory(directory);
    }
}