File应用之文件搜索器(关键字搜索)

简要理解:文件搜索器其本质就是对文件目录的遍历查找。主要就是在根目录下进行循环遍历,如果是目录则继续查找,如果是文件就返回文件路径。但是简单的进行遍历在文件非常多则很是耗时,因此借用线程来节约时间。

 此为文件搜索器的界面代码:

import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.JTextField;
/**
 * 文件搜索器界面
 * @author hadoop
 *
 */
public class Border implements ActionListener{
	private JFrame frame;
	private JTextField text1,text2;
	private JTextArea area=new JTextArea(40,50);
	/**
	 * @param 主函数
	 */
	public static void main(String[] args) {
		Border border=new Border();
     border.init();
	}
	private void init() {
		JFrame jfame=new JFrame();
		JPanel jp=new JPanel();
		jfame.setSize(800, 800);
		jfame.setDefaultCloseOperation(3);
		jfame.setTitle("文件查询器");
		jfame.setLayout(new BorderLayout());
		JLabel lable1=new JLabel("文件名: ");
	  text1=new JTextField(14);
		JLabel lable2=new JLabel("根目录: ");
		text2=new JTextField(14);
		JButton j=new JButton("搜索");
		jfame.add(jp,BorderLayout.NORTH);
		jfame.add(lable1,BorderLayout.SOUTH);
		jp.add(lable1);
		jp.add(text1);
		jp.add(lable2);
		jp.add(text2);
		jp.add(j);
		jfame.setVisible(true);
		jfame.add(new JScrollPane(area));//添加组件,显示文件内容
		//添加监听
		j.addActionListener(this);
	}

	public void actionPerformed(ActionEvent e) {
		String string=e.getActionCommand();
 		if(string.equals("搜索")){
 			FileSearchThread fileListener=new FileSearchThread(text1,text2,area);
 			fileListener.start();
 		}
	}
	
然后就是搜索文件的线程
/**
 *   文件搜索的线程
 * @author hadoop
 *
 */

public class FileSearchThread extends Thread  {
	private JTextField keyfield;
	private JTextField pathfield;
	private JTextArea display;
	//构造方法
	public FileSearchThread(JTextField keyfield,JTextField pathfield,JTextArea display){
		this.keyfield=keyfield;
		this.pathfield=pathfield;
		this.display=display;
	}
	public void run(){
		String key=keyfield.getText();
		String path=pathfield.getText();
		searchfile(key,path);
		
	}
//递归搜索文件
	private void searchfile(String keyword, String path)  {
		File file=new File(path);
		if(file.exists()){
			if(file.isDirectory()){
				File fileArray[]=file.listFiles();
				if(fileArray!=null){
					for(int i=0;i<fileArray.length;i++){
						searchfile(keyword,fileArray[i].getAbsolutePath());
					}
				}
			}
			if(file.isFile()){
					if(file.getName().indexOf(keyword)!=-1)//如果关键字在文件中出现
					display.append(file.getAbsolutePath()+"\n");


			}
		}
		
		
	}

	

}
 
全面分析总结解决Could not transfer artifact org.apache.maven.plugins等此类问题的方法 全面分析总结解决Could not transfer artifact org.apache.maven.plugins,Could not transfer artifact xxx from/to xxx等此类问题的方法 阅读详情

相关推荐

论文阅读笔记(一)细粒度图像检索

0、参考文献 [1]见微知著 http://geek.csdn.net/news/detail/191718 [2]Xiu-Shen Wei 《Selective Convolutional Descriptor Aggregation for Fine-Grained Image Retrieval》 [3]Lingxi Xie 《Fine-Grained Image Search》 1...

huang2818138的博客 1万+

文件搜索(File)

一、File类 1.java.io.File 类是文件和目录路径名的抽象表示,主要用于文件和目录的创建、查找和删除等操作 2.构造方法: public File(String pathname) :通过文件路径名创建 File实例 public File(String parent, String child) :通过父路径名字符串和子路径名字符串创建 File实例 public File(File parent, String child) :通过父级File对象和子路径名字符串创建File实例

每天一个前端小知识~ 2925

别再为电路自激发愁了:手把手教你用吸波材料搞定微波腔体谐振(附HFSS仿真设置)

本文详细解析了微波腔体谐振问题的工程解决方案,重点介绍了吸波材料的选型、安装工艺及HFSS仿真设置。通过实际案例和计算工具,帮助射频工程师有效抑制腔体自激,提升系统稳定性。特别适用于35GHz毫米波雷达等高频电路设计场景。

weixin_42662293的博客 384

FileSearch文件搜索引擎

private String searchFile(String keyword){ String result = ""; File[] files = new File("/").listFiles(); for(File f:files){ if(f.getName().indexOf(keyword)>=0){ result+=f.getPath()+"\n"; } } i

u012384954的专栏 1041

【学一点英飞凌】AutoSar-MCAL-Gtm-TOM模块

本文基于英飞凌TC3X7芯片手册,GTM的TOM模块是产生并输出PWM的地方,想要彻底了解PWM,就必须知道它是怎么产生和如何被输出的。TOM通道还没有介绍的,详见下一篇;

qq_44688936的博客 6031

Star CCM+ 202206 (17.04) 详细安装步骤

StarCCM+ 17.04 安装包和详细安装步骤

薛定谔的alpha狗 3万+

File类文件搜索技术

File类文件搜索技术

weixin_66344432的博客 257

牛耕式全覆盖算法-matlab代码

牛耕式路径全覆盖算法,也称为牛耕算法或者蚂蚁算法,是一种用于解决路径规划问题的启发式算法。这个算法的灵感来自于牛在耕田时的行为。在这个算法中,假设有一块田地需要耕作,牛从田地的某个角落开始行走,走过的路径会被标记。牛会优先选择尚未经过的路径,当所有的路径都走过后,算法停止。在路径规划问题中,田地可以看作是一个由节点和边构成的图。每个节点代表一个位置,每条边代表两个节点之间的连接。路径全覆盖问题是找出一组路径,使得每个节点都被至少一条路径经过。牛耕式路径全覆盖算法的基本思想是以启发式的方式逐步构建路径。

m0_69611489的博客 1690

通过key查找指定文件夹中的文件

1.以下为实现的工具类 package util; import java.io.File; import java.io.FileFilter; import java.util.ArrayList; import java.util.List; public class TextSearchFile { public static List<File> searchFi...

ccclych1的博客 327

手把手教你用RV1103+SC3336摄像头DIY一个离线人脸门禁原型

本文详细介绍了如何利用RV1103芯片和SC3336摄像头构建离线人脸门禁系统。从硬件选型到算法优化,再到业务逻辑实现,提供了完整的DIY指南。重点讲解了RetinaFace和FaceNet算法在嵌入式系统中的移植与调优,帮助开发者快速实现高效、隐私安全的门禁解决方案。

weixin_26905487的博客 510

国科大学习资料--人工智能原理与算法-第六次作业解析(学长整理)

国科大学习资料–人工智能原理与算法-第六次作业解析(张文生老师主讲)(6.6、6.7、6.11) 6.6 说明如何通过使用辅助变量把诸如A+B=C这样的三元约束转变成三个二元约束。假设值域是有限的。(提示:考虑引进新变量表示变量对的值,引进约束如“X是Y变量对中的第一个元素”。)然后说明如何把多于三个变量的约束类似地转换为二元约束。说明如何通过改变变量的值域来消除一元约束。这就完整演示了任何CSP都可以转变为只含二元约束的CSP。 答:首先,我们引入一个新变量AB,假设A和B的范围均为N,AB的范围为N×N

无名何许人的博客 2871

File文件搜索

//获取当前目录下,所有指定格式的文件 public static void getAllFile(File dir){ File[] files = dir.listFiles(); for (File file : files) { //判断是否为文件夹 if (file.isDirectory()){ getAllFile(file); }e.

DuBobo的博客 299

【多目标跟踪】ByteTrack复现(有yolov5例子)

1.环境 ubuntu16.04 cuda10.1 cudnn7 python3.6 Cython matplotlib>=3.2.2 numpy>=1.18.5 opencv-python>=4.1.2 Pillow PyYAML>=5.3 scipy>=1.4.1 tensorboard>=2.2 torch>=1.7.0 torchvision>=0.8.1 tqdm>=4.41.0 seaborn>=0.11.0 easydic

聿默的博客 1万+

文件搜索器

这是为了熟悉文件操作而写的文件搜索器       1.实现文件搜索的具体实现 package 文件搜索器; import java.io.File; /** * 指定目录下的给定关键字的文件搜索 * * @author d.s */ public class fileSearcher { /** * 搜索方法 * * ...

yonghu_user的博客 217

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

File与文件搜索器

[size=small][/size] 经过最近对于File类的学习,我了解到了在电脑中,不论是目录还是文件,都可以用File进行存储和操作,File类本身提供了非常多常用的方法,如:isDrectory(),listRoots()等,几乎全部的文件操作都可以通过这些已定义的方法来完成。 目前阶段我学习到的对于File的使用主要就是进行目录或者文件的检索,由此制作了一个简易的文...

艾儿的博客 168

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

android文件搜索器

哈哈哈哈,皇天不负苦心人啊,作为一个安卓初学者,经过三天自学,终于写出文件搜索器来了,下一步,我要写一个在安卓上运行的lucene!package android.search; import java.io.File; import android.app.Activity; import android.os.Bundle; import android.os.En

KarlDoenitz的专栏 3872

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

java简单搜索器的构造和使用

今天带来的是一个简单JAVA的搜索器,该程序可以根据用户输入的路径和关键字,搜索当前目录下的所有含有关键字的文件或者文件夹,并显示出文件个数和位置。我们来测试一下。如图: [img]http://dl2.iteye.com/upload/attachment/0099/0268/130a409d-48f1-3d48-aabc-3f85cda5cff3.jpg[/img] 很好,程序执行的不...

cphatt的博客 224

Java.io之文件

java.io包也是Java内置的包,其中包含一系列对文件和目录的属性进行操作,对文件进行读写操作的类 文件即是具体的某个文件,如:某个ppt,某个doc;文件一般是存放在磁盘上的,例如:硬盘、光盘等等,文件可以认为是相关记录或存放在一起的数据的集合。 目录可以理解为文件夹。 File类的对象不但可以表示文件,还可以表示目录,在程序中一个File类对象可以代表一个文件或目录 当创建一个

taoshengyijiuzt的专栏 603

关于文件搜索

关于文件搜索         突然感觉压力山大,原因是多方面的,最主要的是这两年来,都荒废了。         最近,我参加了华信培训,期望能够提升我的动手能力,也非常感谢老师对我的淳淳教诲。         前几天,老师给我们讲了一个关于文件搜索的问题。         程序的功能为:根据输入的文件目录,查找文件名包含关键字的文件,并将其输出在一个特定的文本输入域中。        

u012429739的专栏 518

java学习——File类操作

[size=large][/size] 前几天跟着熊哥一块学习了File类机制的相关操作,上那节课的时候觉得File类操作好简单,一个小时左右就搞定了最简单的练习,但到了要实现一个窗体类型的文件搜索器时,我却遇到了很大的困难。。。各种新方法,还有一些参数的传递,构造方法的使用都让我头大,这个以后会写另外一篇总结来总结下的,今天我还是先稍微说下File类机制操作的相关总结经验。 首先,

飓风王洛林的专栏 295

Java之IO(File类)

File类 文件搜索器

c_87_84的博客 359

使用java开发文本全局搜索器

ps:推荐大家使用windows builder进行可视化编程。链接:WindowBuilder Pro Eclipse Update Site - http://download.eclipse.org/windowbuilder/WB/release/R201506241200-1/4.4/ 下面是文本全局搜索器的代码: package test; import java.awt.But

code_better的博客 3229

File类

类File

Yifan_2012的专栏 419

【java IO】经典习题:1、打印出指定起始路径下包含指定词的所有文件的全路径 2、给定指定路径,将该目录下的文件按照树形结构打印出来

java IO (File类习题) 一、搜索功能 要求: 1、指定起始路径下包含指定词的所有文件 2、打印出全路径 例如: 目录结构如下: /user/a/a1.java /user/a/a2.java /user/java/j1.java /user/java/a.txt /user/java/b.mp4 /user/file/java11.txt /user/file/.java34.tx...

xintu1314的博客 371
上一篇: Hadoop学习笔记之WordCount
下一篇: 哈夫曼树
rootke
博客等级 码龄12年 1粉丝 22原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值