您的位置:首页 > 移动开发 > 微信开发

编写文件搜索小程序: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

*/
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐