Windows10确实比Windows8.1更好用,然而它搜索文件的速度还是很令人捉急,工作效率低。于是,就想写个程序,搜索文件,以此来节省等待的时间。
思路很简单:
创建一个String[] 数组,包含所有盘符(c盘的文件数量很大,我的电脑就有20几万,如果搜索对象主要是系统盘以外的,可以省略c盘,降低空间+时间的消耗)
遍历c盘外的三个盘,我的电脑d、e、f盘共有216334个文件。
即22万的文件,用System.out.println打印,耗时:113164毫秒。
用write写入文件,耗时:10487毫秒。
由此可见,打印到控制台会打大降低程序的性能。
然后LinkedList,文件有22,547KB
/*内存使用量要小一些,添加删除元素效率较高。元素随机访问的效率较低。*/——链表
改用ArrayList,文件有217,648KB,耗时:217648毫秒
比用链表的空间消耗大10倍,时间多20多倍。
这样一来,我们创建了电脑盘符的索引,然后再从索引文件读取用户输入的文件名,对它匹配并写入新文件,打开新文件即可获取你想要搜索的目标。
可参考:http://www.jb51.net/article/36495.htm(java中ArrayList 、LinkList的区别分析)
http://blog.jobbole.com/79023/(最值得阅读学习的 10 个 C 语言开源项目代码)
/*160403添加*/
每次想搜索文件,都得打开eclipse,然后在控制台输入搜索文件名,还要手动进入盘符,查看查找的文件结果,效率确实不高。
解决方法:写个批处理文件,这样就有类似于.exe的功效。
直接在控制台搜索,搜索完毕打开生成的文件结果。
打开cmd,输入java -help可以得到启示,然后才写出如下代码的。
java -classpath F:\代码位置\FileTool\bin\ com.zh.zsr.Find
d:
D:\resultPath.txt
pause