我的硬盘上有一个包含大量txt文件的文件夹。我正在寻找一种方法将这些txt文件加载到一个hashmap中,其中文件名是键(作为字符串),filecontent是相应的值(作为字符串)。对于整个文件夹内容,我该如何自动完成?
提前感谢。
答案 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个文件是不可能的,所以我正在寻找替代方案。