import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
public class Test {
private static boolean flag = true;
public static void main(String[] args) {
try {
find("hunan","C:\\Users\\admin\\Desktop");
if(flag)System.out.println("no result found!");
} catch (IOException e) {
e.printStackTrace();
}
}
public static void find(String words,String path) throws IOException {
File[] f1 = new File(path).listFiles();
for (int i = 0, len = f1.length; i < len; i++) {
if (f1[i].isDirectory()) {
find(words, f1[i].getAbsolutePath());
}else {
String article = readFromInputStream(f1[i].getAbsolutePath());
if(article.indexOf(words) > -1) {
flag = false;
System.out.println(f1[i].getAbsolutePath());
}
}
}
}
private static String readFromInputStream(String s) throws IOException {
InputStream inputStream = new FileInputStream(new File(s));
StringBuilder resultStringBuilder = new StringBuilder();
try (BufferedReader br = new BufferedReader(new InputStreamReader(inputStream))) {
String line;
while ((line = br.readLine()) != null) {
resultStringBuilder.append(line).append("\n");
}
}
return resultStringBuilder.toString();
}
}
代码中:find("hunan","C:\\Users\\admin\\Desktop"); hunan为搜索内容;C:\\Users\\admin\\Desktop为目标地址;
如下所示:不管是文件或者内容只要有hunan这个关键字就会被搜索到;