📄 searchlocalfile.java~12~
字号:
package search;
import java.io.*;
import java.util.*;
/**
* <p>Title: </p>
* <p>Description: </p>
* <p>Copyright: Copyright (c) 2002</p>
* <p>Company: </p>
* @author not attributable
* @version 1.0
*/
public class SearchLocalFile implements Runnable{
String fileDir;
String searchString;
ArrayList errorList = new ArrayList();
String[][] result;
public SearchLocalFile() {
fileDir="";
searchString="";
}
public SearchLocalFile(String fileDir,String searchString) {
this.fileDir=fileDir;
this.searchString=searchString;
}
public String[] getFileName(){
File dir=new File(fileDir);
String fileName[]=dir.list();
return fileName;
}
public void run(){//启动搜索线程
result = search(getFileName(),searchString);
}
public int searchOneFile(String fileName,String searchString){
FileInputStream is;
BufferedReader in;
String text = "";
String temp = "";
int count=0;
int pos=0;
int len=searchString.length();
try{
is = new FileInputStream(fileDir+"/"+fileName);
in = new BufferedReader(new InputStreamReader(is,"UTF-8"));
//读取字符并搜索
while ( (temp = in.readLine()) != null) {
text += temp;
if((pos=text.indexOf(searchString))>=0){
count++;
text=text.substring(pos+len);
}
else if(text.length()>2*len){
text=text.substring(text.length()-len);
}
}
while((pos=text.indexOf(searchString))>=0){
count++;
text=text.substring(pos+len);
}
in.close();
is.close();
return count;
}
catch (FileNotFoundException e) {
return -1;
}
catch (IOException e) {
return -2;
}
}
public String[][] search(String[] fileName ,String searchString){
String[][] result=new String[fileName.length][2];
for(int i=0;i<fileName.length;i++){
int count = searchOneFile(fileName[i], searchString);
result[i][0]=fileName[i];
result[i][1]=String.valueOf(count);
// if (count == -1)
// errorList.add("文件" + fileName[i] + "无法打开");
// else if (count == -2)
// errorList.add("文件" + fileName[i] + "读写错误");
// else
}
return result;
}
public static void main(String[] args) {
SearchLocalFile searchLocalFile1 = new SearchLocalFile("d:/test","123");
String[][] result =
searchLocalFile1.search(searchLocalFile1.getFileName(),searchLocalFile1.searchString);
for(int i=0;i<result.length;i++){
System.out.println(result[i][0]+":"+result[i][1]+"次");
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -