`
dawuafang
  • 浏览: 1192163 次
文章分类
社区版块
存档分类
最新评论

文件夹下有子文件夹又有.txt,子文件夹又有子文件夹又有.txt和子文件夹,把txt文件上面的单词全打出来并统计相同单词出现次数

 
阅读更多

/**
* 文件夹下的文件读取.
* 该文件夹下面又又文件夹
* 而再每个文件夹可能又一个
* 或者多个.txt文件;
* 当然了,你也可以自定义要查找的文件类型
* 但是必须要.***的类型额
*/

import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;
import java.util.StringTokenizer;

public class MyDir {
//单词存再map中;
private Map<String, Integer> words = new HashMap<String, Integer>();
//查找出文件里面的单词,其中单词之间用" "分开;
private Map<String, Integer> searchWord(String fileSource) {
try {
//创建文件读取;
FileReader input = new FileReader(fileSource);
//缓冲
BufferedReader br = new BufferedReader(input);
//行读
String wordLine = "";
//一行一行的读取,当他的行数还没有是null时候还读
while ((wordLine = br.readLine()) != null) {
//令牌读出一行的单词,用空格分开单词
StringTokenizer word = new StringTokenizer(wordLine, " ");

while (word.hasMoreTokens()) {
//这里好象一定要这样用临时string,因为我用了几次直接word.nextToken();都提示说nullpointer异常
String temp = word.nextToken();
//如果map中的键已经有了,就把值取出来++;之后存上;
if (words.containsKey(temp)) {
int tempValue = words.get(temp).intValue();
tempValue++;
words.put(temp, tempValue);
} else {
//没有键的话直接存,这个1不是每个版本都能用这样的,好象是6.0版本的jdk会自动转化,
//如果是早版本应该是
//wrods.put(temp, new Integer(1));
//这样才正确
words.put(temp, 1);
}
}
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return words;

}
//该方法是为了打开文件夹下的.txt文件及文件夹;
public Map<String, Integer> searchFile(String fileSource) {
//打开文件路径
File files = new File(fileSource);
//文件是一个数组文件
File[] sources = files.listFiles();
//迭代出所有的文件(当然里面有文件夹,还有各种文件了;
//这里只考虑了该文件下面仅有文件夹和.txt文件,没有其他的文件
for (File f : sources) {
//获取文件的名字;(当然包括文件夹和文件为.txt的记事本了;
String tempName = f.getName();
//如果是记事本.txt结尾的.就调用searchWord函数把里面的词读出来;
if (tempName.endsWith(".txt")) {
words = searchWord(fileSource + "/" + tempName);
} else {
//否则就递归的调用该函数读取文件,
//不过前面一定记得加上源文件名及"/"哦.不然就找不到路径了
searchFile(fileSource + "/" + tempName);
}
}
return words;
}
//为了方便,我就再这里测试了
@SuppressWarnings("unchecked")
public static void main(String[] args) {
MyDir md = new MyDir();
//文件夹为你要查找的文件夹D:/texttemp,以及要查找的类型了;
Map<String, Integer> p = md.searchFile("D:/tomcat");
Set s = p.entrySet();
Iterator it = s.iterator();
while(it.hasNext()) {
System.out.print(it.next() + " ");
}
System.out.println();
}
}

分享到:
评论

相关推荐

    Vim的.vim文件夹和.vimrc配置文件

    首先,`.vim`文件夹位于用户的主目录下(例如,在Linux或macOS中通常是`~/.vim`),它是Vim所有自定义配置和插件的存储地。这个文件夹包含了用户安装的所有Vim插件、颜色方案、映射(映射键位到特定操作)以及其他...

    查找指定文件夹中所有文件中的单词

    这是我自己写的从指定文件夹中查找所有文件中的对应单词的功能小程序,请不要指定内容太多的目录,可能会造成消耗内存太多。有任任bug可以在我的博客上留言,谢谢! ...

    文件内容及文件夹相比较软件

    - **目录结构比较**:不仅比较文件内容,还比较文件夹结构,包括子文件夹的层级和文件的位置。 - **同步功能**:可以将一个文件夹的内容更新到另一个文件夹,保持两者一致,适用于备份和同步操作。 - **过滤规则*...

    单词单词单词单词单词.zip

    【标题】:“单词单词单词单词单词.zip”是一个压缩文件,其命名方式可能表明它包含了与“单词”相关的学习资料或工具。在IT领域,压缩文件通常用于存储多个文件或文件夹,以减小磁盘空间占用,便于传输和归档。 ...

    html网页版深度学习CNN训练识别英文数字单词-含逐行注释和说明文档-不含图片数据集(需自行搜集图片到指定文件夹下).zip

    下载本代码后,有个环境安装的requirement.txt文本 运行环境推荐安装anaconda,然后再里面推荐安装python3.7或3.8的版本,pytorch推荐安装1.7.1或1.8.1版本。 首先是代码的整体介绍 总共是3个py文件,十分的简便 且...

    html网页版基于图像分类算法对英文单词识别-含逐行注释和说明文档-不含图片数据集(需自行搜集图片到指定文件夹下).zip

    下载本代码后,有个环境安装的requirement.txt文本 运行环境推荐安装anaconda,然后再里面推荐安装python3.7或3.8的版本,pytorch推荐安装1.7.1或1.8.1版本。 首先是代码的整体介绍 总共是3个py文件,十分的简便 且...

    遍历文件夹下的CSV文件并统计指定列单词的词频

    Pycharm平台下利用python语言实现文件夹中所有CSV文件中指定列的单词出现的次数,结果另存为txt文本

    免费自定义txt背单词APP(其它科目也可以)

    特色:APP首次安装会在本地创建zc文件夹、zc.txt文件,将一些内置单词写入zc.txt中;以后APP便读取zc.txt中的单词,生成单词选择题;你可以按照zc.txt中的格式,自定义想要的内容,不只是英语单词,其它科目也可以的...

    新建文件夹_java_Eclipse_

    【标题】:“新建文件夹_java_Eclipse_”指的是一个与Java编程语言和Eclipse集成开发环境相关的学习资源集合。这个压缩包可能包含了关于Java编程语言的编码规范指导以及Eclipse IDE的使用教程。 【描述】:“java...

    文件夹双向加密同步工具syncrypto.zip

    如果有冲突的话,syncrypto会将明文文件重命名(加上单词conflict),然后将密文文件同步过来 syncrypto是不会删除文件的,如果同步过程中需要删除或者覆盖文件,syncrypto会将文件移动 到废纸篓里面。密文...

    文件中单词查找

    3. **多文件搜索**:在实际操作中,往往需要在一个文件夹甚至多个文件夹下的所有文件中查找单词。该工具很可能具备这样的能力,可以一次性搜索多个文件或整个目录。 4. **搜索结果预览**:查找结果通常会以列表形式...

    Java实现的模糊匹配某文件夹下的文件并删除功能示例

    使用 `File` 类的 `listFiles()` 方法可以获取给定路径下所有文件和子文件夹的数组。这使得我们能够遍历文件夹中的每一个文件或子文件夹。 3. **删除文件**: 删除文件的操作由 `deleteFile()` 方法完成。`File` ...

    TXT阅读器.e.rar

    在文件管理方面,TXT阅读器.e可能支持目录浏览和批量操作,用户可以轻松地组织和管理大量的TXT文件。例如,可以创建文件夹,将相关的文档归类,或者一键打开多个文件进行连续阅读。 对于压缩包中的"TXT阅读器.e",...

    新建文件夹 (4).rar_6EKZ_文本分类_文本分类程序

    4. **txttype.txt**:这是一个纯文本文件,可能包含了分类数据集的样本,或者分类标签。在文本分类中,通常需要将文本数据和对应的类别标签一同处理。 5. **关于网页抓取.py**:这个文件可能包含了一个网页抓取...

    新建压缩(zipped)文件夹.zip

    在给定的压缩文件"新建压缩(zipped)文件夹.zip"中,包含了四个Java源代码文件,它们分别是:LinkListed.java、Test1.java、ListLinkedNode.java和List.java。这些文件很可能是一个简单的链表数据结构实现的示例,...

    〈南开一百题〉有分类

    │ │ 题目94从文件in.dat中读取200个整数.txt │ │ │ └─200个正整数 │ 题目05200个正整数.txt │ 题目06200个正整数.txt │ ├─函数ReadDat() │ 题目16.txt │ 题目17.txt │ 题目74.txt │ ...

    F:\英语学习\tofel\1200核心单词.rar

    标题中的“F:\英语学习\tofel\1200核心单词.rar”表明这是一个压缩文件,存储在计算机的F盘的“英语学习”文件夹下的“tofel”子文件夹中,文件名为“1200核心单词.rar”。RAR是一种常见的压缩格式,用于集合多个...

    二级c南开100题分类

    │ │ 题目94从文件in.dat中读取200个整数.txt │ │ │ └─200个正整数 │ 题目05200个正整数.txt │ 题目06200个正整数.txt │ ├─函数ReadDat() │ 题目16.txt │ 题目17.txt │ 题目74.txt │ ...

    文件夹内统计行数文件夹内统计行数

    在本文中,我们将深入探讨如何在不同情境下统计文件夹内所有文件的行数,以及与之相关的编程语言和工具的使用。 首先,我们需要理解“行数”这一概念。在计算机文件系统中,行数通常指的是文本文件中以换行符分隔的...

    C++遍历某文件夹某类扩展名的文件.docx

    在C++编程中,遍历特定文件夹并获取特定扩展名的文件是一项常见的任务,特别是在处理大量数据或进行文件操作时。这个例子中,我们看到一个简单的C++程序,它遍历指定目录下所有扩展名为".jpg"的文件。以下是对该程序...

Global site tag (gtag.js) - Google Analytics