如何将大量的txt文件加载到java中的hashmap中

时间:2015-07-21 08:49:45

标签: java

我的硬盘上有一个包含大量txt文件的文件夹。我正在寻找一种方法将这些txt文件加载到一个hashmap中,其中文件名是键(作为字符串),filecontent是相应的值(作为字符串)。对于整个文件夹内容,我该如何自动完成?

提前感谢。

3 个答案:

答案 0 :(得分:0)

查看File类,尤其是File.listFiles()(列出目录中的所有文件)和isDirectory方法。通过选中File.isDirectory()并使用File.getName()获取名称递归进入文件夹,并使用FileReader来阅读内容。

一些伪代码:

Map<String, String> fileMap = new HashMap<String, String>();
public void visitFiles(File folder) {
    for each file f in folder
        if 
            f is directory then visitFiles(f)
        else 
            use FileReader to read into buffer String
            add filename and buffer to map        
}

答案 1 :(得分:0)

我认为将所有内容加载到地图是个不错的主意。 如果你有大量的文件和大量的内容,这将浪费内存,很容易造成OOM。 尝试使用guava来处理文件。

答案 2 :(得分:0)

感谢每一个答案。我有2000个txt文件,我想用作支持向量机(svmlight)的trainingdata。要进行nessessary预处理(矢量化,tf-idf加权等),我想使用一个小的java程序。我已经拥有了我之前的一个项目所需的大部分代码。但是,由于我只有一小撮文件需要处理,我只是将每个文件名写入代码中。显然,这对于2000个文件是不可能的,所以我正在寻找替代方案。