这个功能类似notepad++的文件搜索功能,如全词匹配“int”的搜索结果如下所示:
但是搜索结果呈现出来的形式可能不是我们需要的,如我们只需要知道哪些文件有关键词,把结果导出到EXCEL中等等,这时就需要我们自己编码了,下面只是个参考:
import java.io.*; import java.util.HashMap; import java.util.Iterator; import java.util.Map; import java.util.Set; import java.util.regex.Matcher; import java.util.regex.Pattern; public class CheckKeyWord { public final String fileType="java";//文件扩展名 public static final String checkDir="E:\\svn\\mysvnproject\\check1\\ebay"; public final boolean skipDirWithPointStart=true;//跳过以.号开头的文件夹 public static String keywords[]={"int","Integer"};//搜索的关键词 public static Map<String, Integer> report=new HashMap<String,Integer>(); public static void main(String[] args) { CheckKeyWord c=new CheckKeyWord(); try { c.check(checkDir); } catch (Exception e) { e.printStackTrace(); } Set<String> files=report.keySet(); Iterator<String> iterator=files.iterator(); while(iterator.hasNext()){ String file=iterator.next(); Integer count=report.get(file); System.out.println(file+":\t("+count+" hits)"); } } private void check(String dir) throws Exception{ if (keywords.length==0) { System.out.println("请列出关键词"); return; } File dirs=new File(dir); File files[]=dirs.listFiles(); FileReader fReader=null; BufferedReader br=null; StringBuffer reg=new StringBuffer(); for (int i = 0; i < keywords.length; i++) { reg.append(".* "+keywords[i]+" .*|"); } String regex=reg.substring(0,reg.length()-1); Pattern pattern=Pattern.compile(regex); Matcher matcher=null; for(File tempFile:files){ //跳过以点开头的文件夹,如.svn文件夹 if (skipDirWithPointStart) { if (tempFile.isDirectory()) { check(tempFile.getAbsolutePath()); } else { //读到某个文件 if (checkFileType(tempFile,fileType)) { fReader=new FileReader(tempFile); br=new BufferedReader(fReader); String s=null; while((s=br.readLine())!=null){ matcher=pattern.matcher(s); if (matcher.matches()) { //读取到的一行含给定关键字 String absPath = tempFile.getAbsolutePath(); if (!report.containsKey(absPath)) { report.put(absPath, 1); } else { report.put(absPath, report.get(absPath)+1); } System.out.println(absPath+"\t"+s);//文件全路径+含关键词的文本 } } } } } } } private boolean checkFileType(File file, String fileType) { String fileName=file.getName(); if (fileName.endsWith(fileType)) { return true; } return false; } }
程序执行结果如下:
发表评论
-
CSDN表情批量下载
2014-07-24 16:55 675CSDN评论时有很多有趣的表情,可以通过程序将这些表 ... -
南京地铁票价查询
2014-07-16 16:27 1004查看南京地铁各个站点间的距离 import java.io ... -
java系统托盘
2012-07-20 22:43 983import java.awt.*; import j ... -
多线程实例
2012-07-20 22:08 771public class Class1 { publ ... -
读配置文件,传参数,打印message
2012-06-21 19:43 1065为了将来维护,message内容可能需要更改 ... -
java 线程 模拟卖票
2012-05-27 13:35 1015package thread; import jav ... -
java URLConnection
2012-05-27 13:36 1247package net; import java.ne ... -
java JFileChooser
2012-05-26 21:06 1074import java.io.*; import ... -
java Vector
2012-05-26 20:40 802import java.util.Vector; im ... -
java applet GUI 2D
2012-05-26 20:09 1067package applet; import java.aw ... -
java AdjustmentListener,Scrollbar的使用
2012-05-26 20:03 1045package gui.event; import j ... -
java TextListener的使用
2012-05-26 19:57 1519package gui.event; import ... -
多线程模拟测试网站并发性
2012-05-25 21:11 2918网站开发完了后,需要测试网站能支持多少用户并发访问,下面的j ... -
java 字节流使用
2012-05-21 14:04 1107package advance.test; import ... -
java通过apache的POI写EXCEL
2012-04-22 22:05 1974Apache POI是Apache 软件 基金会的开放 ... -
java全屏
2012-04-22 14:54 1091下面的代码演示了如何让JFrame全屏显示: impo ... -
JDBC-ODBC桥连接方式连接MS ACCESS,配置数据源
2012-04-22 13:59 1413下面是通过jdbc-odbc连接ms access数据库的一种 ... -
java获取系统相关信息
2012-01-12 22:12 1615下面的代码可以获取系统的环境变量,操作系统、处理器、编码和语言 ...
相关推荐
`:检查指定路径的文件或目录是否存在。 2. `获取当前目录`:获取当前程序的工作目录。 3. `设置当前目录`:改变当前程序的工作目录。 4. `获取磁盘信息`:获取磁盘的基本信息,如磁盘名称、总容量等。 5. `遍历目录...
在这个特定的场景中,我们关注的是PDF.js的1.1.159版本,它包含了对指定页码的关键词检索功能,并且能够高亮显示匹配的关键词。 关键词检索是阅读PDF文档时常用的功能,可以帮助用户快速找到文档中的关键信息。在...
【标题】"个人电脑指定文件全盘搜索"指的是在个人计算机上进行快速、全面的文件查找功能,这种功能能够帮助用户在所有磁盘分区中定位到特定文件或包含指定文本的文件。它允许用户输入关键词,甚至进行模糊查询,极大...
在"易语言搜寻目录寻找文件"这个主题中,我们主要关注的是如何使用易语言来实现对指定目录下文件的搜索和处理。下面我们将深入探讨相关知识点。 首先,**搜寻目录寻找文件** 是程序开发中的常见需求,尤其是在处理...
通过上述代码,我们可以轻松地实现一个功能强大的文件搜索工具,该工具不仅能搜索指定目录下的所有文件,还能进一步搜索文件内的关键词。这对于开发人员来说非常有用,尤其是在处理大量文件时。此外,通过记录执行...
C#.net 做的文件搜索工具(windows)。原理是读取ntfs的USN文件日志,然后内建索引加速文件搜索过程。 1、列表文件支持批量处理(删除、复制、复制文件名路径、打开、重命名),或者引用系统菜单。 2、支持拼音首...
总之,"指定目录下所有文件中批量查找、替换字符串工具"是一个强大且实用的工具,它简化了在大量文件中进行查找和替换的工作流程,是IT专业人士不可或缺的辅助工具。通过合理利用这样的工具,我们可以更有效地管理和...
文件夹查找器1. 文件夹准备2....① 遍历指定路径下所有的内容(包括文件和文件夹) glob.glob(path, recursive = True) ② 获取路径的最后的文件/文件夹名称,判断是否为匹配的路径,如果是查找文件夹就是等
5. **设置图标**:为了显示不同的图标,我们还需要在每个文件类型的主键下创建一个 "DefaultIcon" 主键,并设置其默认值为图标文件的完整路径,如 "C:\Program Files\MyApp\icon_cusa.ico"。 6. **重复步骤**:对于...
能搜索指定路径下的路径 ②使用方法 在界面中输入要搜索的关键词;然后点击按钮选择路径,同时进入搜索状态 等搜索结束,会自动将结果存放入同级目录中的“扫描结果.txt”文件中,只需要打开此文件即可查看搜索的...
标题中的“搜索硬盘上所有指定文件并可选择清理”是一个典型的计算机操作,涉及到文件系统管理、文件搜索算法以及用户界面设计。在这个过程中,我们需要理解以下几个关键知识点: 1. **文件系统**:计算机存储数据...
在进行txt文件搜索时,我们需要遍历文件系统,读取每个txt文件,然后查找目标关键词。这可以通过`Directory.GetFiles()`方法获取指定目录下的所有txt文件,接着使用`File.ReadAllText()`或`StreamReader`逐行读取...
在Java开发中,JDK(Java Development Kit)是不可或缺的一部分,它提供了编译、运行和调试Java程序所需的所有工具。本文将深入探讨Java JDK以及其在文件管理系统中的应用。 首先,JDK是Oracle公司提供的Java编程...
`GetFolder`方法用于获取指定路径的Folder对象,然后可以使用`Files`属性获取该目录下的所有File对象。通过循环遍历这些File对象,我们可以显示每个文件的名称或者其他信息。 3. 文件搜索: 在这个VB程序中,可能...
设定要搜索的根文件夹路径。 确定需要查找的关键词。 编写递归函数遍历文件夹 创建一个递归函数,用于遍历指定文件夹及其子文件夹。 读取文件内容并查找关键词 在递归函数中,读取每个文件的内容。 使用高效的方法...
本话题将详细介绍如何使用递归方法在Windows环境下删除指定类型的文件,以"dpdb.bat"和"cv2pdb.exe"为例。 首先,让我们理解什么是pdb文件。pdb文件是Microsoft Visual Studio编译器生成的一种特殊文件,它存储了源...
最终,代码的运行结果会生成一个新的文件夹,其中包含了所有与关键词匹配的文件,同时更新后的文件名列表将反映出每个关键词匹配到的文件数量。 使用Python进行文件批量查找和管理的优势在于其高效性和准确性,能够...
这通常使用“打开文件”命令,指定文件的路径,并设置打开模式(如读取模式)。接着,我们需要确定要读取的行数,这可能涉及到计数器变量的使用,以及循环结构(如“重复”或“如果…那么”语句)来遍历文件的每一行...
在IT行业中,文件搜索工具是日常工作中的重要辅助软件,它能帮助用户快速定位到所需的文件或数据。"文件搜索工具(java版)"是专为此目的设计的一个实用程序,尤其适用于那些处理大量文件和压缩包的Java开发者。下面...
1. **打开文件**:在易语言中,我们可以使用“打开文件”命令打开一个TXT文件,该命令需要提供文件路径作为参数。例如: ```易语言 .文件句柄 = 打开文件("C:\path\to\file.txt", "只读") ``` 这里,`"只读"`...