package iolearning;
import java.io.File;
public class TestThreadFindString {
public static void main(String[] args) {
File file = new File("d:\\");
String s = "Test";
search(file,s);
}
public static void search(File file,String search) {
if(file.isFile()&&file.getName().toLowerCase().endsWith(".java"))
new FindFile(file,search).start();
if(file.isDirectory()) {
File[] list = file.listFiles();
for (File f : list) {
search(f, search);
}
}
}
}
package iolearning;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
public class FindFile extends Thread{
private File file;
private String search;
public FindFile(File file, String search) {
this.file = file;
this.search = search;
}
public void run() {
if(serachFile(file).contains(search)) {
System.out.printf("包含字符串%s所在的文件爲%s\n",search,file);
}
}
public String serachFile(File file) {
try(FileReader fr = new FileReader(file)) {
char[] ch = new char[(int)file.length()];
fr.read(ch);
return new String(ch);
} catch (IOException e) {
e.printStackTrace();
return null;
}
}
}
package iolearning;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
public class TestSingleFileSearch {
public static void main(String[] args) {
File file = new File("d:\\");
String s = "Test";
search(file,s);
}
public static void search(File file, String search) {
if(file.isFile()&&file.getName().toLowerCase().endsWith(".java")) {
try {
FileReader fr = new FileReader(file);
char ch[] = new char[(int)file.length()];
fr.read(ch);
String s = new String(ch);
if(s.contains(search)) {
System.out.printf("包含字符串%s所在的文件爲%s\n",search,file);
}
} catch (IOException e) {
e.printStackTrace();
}
}
if(file.isDirectory()) {
File[] list = file.listFiles();
for (File f : list) {
search(f, search);
System.out.println(f);
}
}
}
}