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.
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


0