Java - Buscar palabra en varios archivos en un folder

 
Vista:

Buscar palabra en varios archivos en un folder

Publicado por Adan (1 intervención) el 24/03/2020 00:32:33
Hola a todos.

Lo que trato de hacer es escribir una palabra y buscar en que archivo se encuentra esa palabra y el numero de veces que la contiene

Ejemplo:
La palabra perro se encuentra en:
archivo1.html - 2
archivo6.hmtl - 8
archivo25.html - 5

Actualmente tengo esto, que solo me muestra el nombre del archivo mas no el numero de repeticiones.
Cualquier ayuda es bien recibida.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
public static void main(String[] args) {
 
        File dir = new File("/Users/Adan/Desktop/Files/"); // directory = target directory.
        if(dir.exists()){ // Directory exists then proceed.
 
            Pattern p = Pattern.compile("casa"); // keyword = keyword to search in files.
            ArrayList<String> list = new ArrayList<String>(); // list of files.
 
            System.out.println("La palabra " + p + " esta dentro de estos archivos:");
 
 
            for(File f : dir.listFiles()){
                if(!f.isFile()){
 
                    continue;
                }
                try
                {
 
                    FileInputStream fis = new FileInputStream(f);
                    byte[] data = new byte[fis.available()];
                    fis.read(data);
                    String text = new String(data);
                    Matcher m = p.matcher(text);
                    if(m.find()){
                        list.add(f.getName()); // add file to found-keyword list.
                    }
 
                    fis.close();
                }
                catch(Exception e){
 
                System.out.println("\n\t Error processing file : "+f.getName());
                }
 
            }
            for (String listado : list) {
                System.out.println(listado);//Lista
            }
        } // IF directory exists then only process.
        else{
            System.out.println("\n Directory doesn't exist.");
        }
    }
}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder