编写文件搜索小程序:1. 输入绝对路径以及搜索关键字,2. 搜索指定路径下(包括子文件夹)中名称包含关键字的所有文件并打印出,3. 将当前操作记录日志
2018-03-10 11:56
1171 查看
package com.homework; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.text.SimpleDateFormat; import java.util.Date; import java.util.Scanner; /** 【编码】编写文件搜索小程序 实现功能: 1. 输入绝对路径以及搜索关键字(如:C: 123 或者 D:\新建文件夹 叶良辰) 2. 搜索指定路径下(包括子文件夹)中名称包含关键字的所有文件并打印出来,如: C:\asd123as.txt C:\Tmp\test123.txt 3. 将当前操作记录日志(每搜索一次只记录当前操作信息): 3.1 判断日志文件(log.txt)是否存在,如果不存在则创建 3.2 追加方式打开该文件进行写入操作 3.3 写入内容为: ----------------------------------------------------------- 201x年x月x日 12:01:02 搜索路径: [C:] 搜索关键字: [123] 搜索结果: [C:\asd123as.txt] [C:\Tmp\test123.txt] */ public class FileSearch { // 搜索指定路径下(包括子文件夹)中名称包含关键字的所有文件并打印出来, private static void search(File file, String keyWord) { if (file.isDirectory()) { File[] listFile = file.listFiles(); if (listFile != null && listFile.length != 0) { for (File f : listFile) { search(f, keyWord); } } } else { try { if (file.getName().indexOf(keyWord.toLowerCase()) != -1) { FileOutputStream output = new FileOutputStream("log.txt", true); output.write(file.getAbsolutePath().getBytes()); output.write("\r\n".getBytes()); output.flush(); output.close(); } } catch (IOException e) { e.printStackTrace(); } } } public static void main(String[] args) { System.out.println("请输入绝对路径:"); Scanner sc = new Scanner(System.in); String path = sc.next(); System.out.println("请输入搜索关键字:"); String keyWord = sc.next(); File file = new File(path); File logFile = new File("log.txt"); // 判断日志文件(log.txt)是否存在,如果不存在则创建 if (!logFile.exists()) { try { logFile.createNewFile(); } catch (IOException e) { e.printStackTrace(); } } else { // 写入到文件,追加方式打开该文件进行写入 try { FileOutputStream output = new FileOutputStream(logFile, true); output.write("\n搜索时间:\n".getBytes()); SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss"); output.write(sdf.format(new Date()).getBytes()); output.write("\n搜索路径:\n".getBytes()); output.write(path.getBytes()); output.write("\n搜索关键字:\n".getBytes()); output.write(keyWord.getBytes()); output.write("\n搜索结果:\n".getBytes()); search(file, keyWord); output.close(); } catch (IOException e) { e.printStackTrace(); } } } }
/* 运行在log.txt中得: 搜索时间: 2018年03月10日 11:54:01 搜索路径: D: 搜索关键字: music 搜索结果: D:\\Program Files (x86)\Netease\CloudMusic\cloudmusic.dll D:\\Program Files (x86)\Netease\CloudMusic\cloudmusic.exe D:\\Program Files (x86)\Netease\CloudMusic\cloudmusic_util.exe D:\\Test\music.txt D:\\下载内容\cloudmusicsetup_2.2.3.195673.exe */
相关文章推荐
- 编写一个Python程序,能在当前目录以及当前目录的所有子目录下查找文件名包含指定字符串的文件,并打印出相对路径
- 编写一个程序,能在当前目录以及当前目录的所有子目录下查找文件名包含指定字符串的文件,并打印出相对路径。
- 【代码】当前目录以及当前目录的所有子目录下查找文件名包含指定字符串的文件,并打印出绝对路径
- python 文件和目录 当前目录以及当前目录的所有子目录下查找文件名包含指定字符串的文件,并打印出相对路径。
- 采用多线程和生产者消费者模式来实现对于一个目录以及所有子目录下的文件内容的搜索,打印出包含指定关键字的行.
- 在当前目录以及当前目录的所有子目录下查找文件名包含指定字符串的文件,并打印出相对路径
- Python:编写函数,能在当前目录以及子目录下查找文件名包含指定字符串的文件,并打印出完整路径
- 获取指定目录(包含子目录)下所有的txt文件的个数,并打印文件名称。程序1。
- Python 在当前目录以及其子目录下查找文件名包含指定字符串的文件,并打印出相对路径。
- 获取指定目录(包含子目录)下所有的txt文件的个数,并打印文件名称。程序2。
- Python列出当前目录下所有含有指定名称的文件(包括路径)
- shell脚本自动查找指定路径下包含某关键字的所有文件
- 利用递归算法遍历所有文件并打印文件绝对路径(包括文件夹)
- shell脚本自动查找指定路径下包含某关键字的所有文件
- 一个WinForm记事本程序(包含主/下拉/弹出菜单/打开文件/保存文件/打印/页面设置/字体/颜色对话框/剪切版操作等等控件用法以及记事本菜单事件/按键事件的具体代码)
- java在指定路径下查找所有文件及其子文件名中,是否包含指定查询的关键字
- iOS小技巧 - 获取指定文件夹下的所有相对路径(包括子文件夹路径),并实现指定文件夹下的所有文件的全部移动
- 一个WinForm记事本程序(包含主/下拉/弹出菜单/打开文件/保存文件/打印/页面设置/字体/颜色对话框/剪切版操作等等控件用法以及记事本菜单事件/按键事件的具体代码)
- 编写一个程序,一行行地读取输入行,直至到达文件尾。算出每行输入行的长度,然后把最长的那行打印出来。为了简单起见,你可以假定所有的输入行均不超过1000个字符
- 一个WinForm记事本程序(包含主/下拉/弹出菜单/打开文件/保存文件/打印/页面设置/字体/颜色对话框/剪切版操作等等控件用法以及记事本菜单事件/按键事件的具体代码)