简单文件搜索器的实现

一、功能介绍

      这个文件搜索器可以选择在各个磁盘目录下对所给出的文件(目录文件和实体文件)进行搜索,并且在文本域中显示输出结果。以下是功能演示的结果。

 

输入查找文件名,并选择磁盘路径


 

 

查找目录文件 


 

 

查找实体文件
 

 

 

二、技术分析

在文件搜索器中,主要的用到的是文件知识和递归算法,我们可以逐个分析。

1、文件

      在Java中,File是一种类,那么它所对应的对象则是磁盘中存在的文件,我们通过创建一个文件对象,并且让它指向所要操作的某个文件,就可以对这个文件进行一系列的读写操作。这就是File类的意义。在这里我们需要注意一个问题:我们通过构造器如new File("fileName")创建File对象时,仅仅是在JVM内存中生成了一个File对象,这是与磁盘上的文件没有任何关系,仅当调用这个对象的其他方法时,这个对象才会指向磁盘上制定的文件。

      因此定义File对象的目的是为了对文件对象进行操作,有关文件操作的几个重要函数如下所示:

boolean exists():判断File对象指向的文件是否存在;

String getName():得到文件的名字(不带路径的名字);

boolean isDirectory():判断File对象指向的文件是否为目录文件;

boolean isFile():判断File对象指向的文件是否为实体文件;

long length():指向File对象指向文件的长度,以byte计,如指向目录则返回0;

File[] listFile():将File对象指向的文件下一级的所有目录文件和实体文件作为 一个数组返回;如果File文件是一个实体文件则返回null值。

2、递归算法

     递归算法是一个用起来方便又容易出错的问题,自己对这个问题也不能运用自如,但是有两点建议:一、在使用递归的时候记住两个原则:明确递归的终止条件,弄懂递归的对象。二、正因为递归具有终止条件和相似性,所以绝大多数的递归问题都可以转化为循环问题来进行解决,所以在把握不大的时候可以考虑使用循环来解决。

 

三、问题分析

      这个简单的文件搜索器只能满足基本的搜索要求,就是目录文件和实体文件,不像Windows的搜索栏那样,通过文件包涵的一些名字来进行查找。这个也就使得在查找实体文件的时候必须输入文件的扩展名(实体文件的名字包涵它的扩展名)。另一个问题是搜索时不能暂停,在学习了线程之后便可以解决。所以在以后完善文件搜索器的时候可以在两个方面进行改进:搜索功能和搜索速度,使查找更为便利,如只要输入文件的一部分名称便能够搜索出相应的一些文件;查找速度更加快捷,由于递归的算法时间代价较大,可以尝试通过循环或者一些好的搜索算法进行改进。对应的jar文件已经发到附件中了,里面有.java的文件,还希望有兴趣的朋友多多指教。

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值