[项目]——文件搜索工具Java-Everything

文章目录

    • 项目简介
    • 应用技术
    • 项目实现
    • 项目功能
    • 项目测试
      • 性能测试
      • 兼容性测试
      • 功能测试
      • 单元测试
    • 项目扩展点

项目简介

Java-Everything是一款仿照Everything桌面工具,基于Java语言开发的文件搜索工具。通过在命令行输入文件名、文件类型搜索到本地文件。解决了Windows命令行下文件搜索慢的问题。

应用技术

  • Java基础(文件操作)
  • DataBase(嵌入式H2数据库)
  • JDBC编程
  • Lombok库(安装lombok插件)、
  • 文件系统监控(Apache Commons IO)
  • Maven管理

项目实现

  • 索引:指定目录建立索引;指定目录排查建立索引
  • 存储:程序启动时,扫描本机的文件,将文件名称、文件类型、文件路径等信息存储到数据库(嵌入式H2数据库)
  • 检索:根据条件检索内容;检索内容后置过滤(由于只监控新增,因此检索后如果内容不存在,做清理操作)
  • 监控:监控指定目录文件的新增(删除/添加),保证检索文件的准确性(考虑如果整个系统做监控,效率太低,所以只监控自定义目录)
    [项目]——文件搜索工具Java-Everything_第1张图片

项目功能

  • 使用help命令显示帮助界面(命令列表)
    [项目]——文件搜索工具Java-Everything_第2张图片
  • 使用index命令为本地文件建立索引
  • 使用search 搜索文件
  • 使用quit命令退出程序

项目测试

性能测试

  • 测试环境:Windows10操作系统
  • 处理器:Intel® Core™ i7-7500U CPU @2.70GHz 2.90GHz
  • 内存:8.00GB
  • 测试数据:本地文件系统文件数:654345
  • 文件查找效率

不建立索引查找:3101ms

建立索引查找:331ms
结论:建立索引查找效率比不建立索引查找速度快了大约10倍

  • 建立索引消耗时间:174030ms(大约3min)

兼容性测试

在Windows10下程序运行正常;
在Linux(Centos7)下运行正常。

功能测试

[项目]——文件搜索工具Java-Everything_第3张图片

单元测试

模块接口测试

  • 输入的实参与形参个数是否相等;
  • 输入的实参与形参的类型是否匹配;
  • 输入的实参与形参的顺序是否一致;
  • 是否处理了输入、输出错误;

对局部数据结构进行测试

  • 变量未初始化或初始化有错;
  • 不正确的变量名;
  • 定义出来的变量只能作用在模块内部;

路径测试

  • 对if语句的多个分支进行测试;
  • 代码中for循环、while循环等的循环次数是否正确;

错误处理测试

  • 异常处理不当;
  • 输出的错误信息不清晰,难以理解;

项目扩展点

  • 搜索文件:在输入文件名时增加自动输入完成
  • 最近搜索:可以增加一个history命令搜索最近搜索信息

你可能感兴趣的:(编程)