⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 searchlocalfile.java

📁 一个java的数据挖掘程序,实现关键字的搜索分类
💻 JAVA
字号:
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;
  String[] fileName;
  int[] countArray;
  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();
    this.fileName=fileName;
    return fileName;

  }
  public void run(){//启动搜索线程
    countArray = search(getFileName(),searchString);
    display();
  }

  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 int[] search(String[] fileName ,String searchString){
    int[] countArray=new int[fileName.length];
    for(int i=0;i<fileName.length;i++){
      countArray[i] = searchOneFile(fileName[i], searchString);
    }
    this.countArray=countArray;
    return countArray;
  }

  private void display() {
    MainFrame.display(">>>>>>>>>>>>>>>>>>>>>>>>>>\n");
    String error = "";

    if (fileName.length <= 0) {
      MainFrame.display("没有搜索到任何文件\n");
    }
    else {
      for (int i = 0; i < fileName.length; i++) {
        if (countArray[i] < 0)
          error += fileName[i]+";";
      }
    }
    for (int i = 0; i < fileName.length; i++) {
      if (countArray[i] > 0) {
        String s = "击中" + countArray[i] + "次:   ";
        for (int j = i; j < countArray.length; j++) {
          if (countArray[j] == countArray[i]) {
            s += fileName[j] + ";";
            countArray[j] = -3;
          }
        }
        MainFrame.display(s + "\n");
      }
    }
    if (!error.equals("")) {
      MainFrame.display("无法处理的文件:" + error + "\n");
    }
    MainFrame.display("<<<<<<<<<<<<<<<<<<<<<<<<<<<\n");

 }


//  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 + -