Cómo encontrar las palabras más comunes de una carpeta de archivos de texto en Java
Tengo un código que lee un archivo de texto de un directorio dado y cuenta correctamente las palabras en él. Pero por más que intento, no puedo encontrar cómo hacer lo mismo pero para una carpeta llena de archivos de texto.
Aquí está el código:
import java.io.File;
import java.io.FileNotFoundException;
import java.util.HashMap;
import java.util.Scanner;
import java.util.Map;
public class WordCount {
public static void main(String[] args) throws FileNotFoundException {
HashMap<string, integer=""> map = new HashMap<string, integer="">();
Scanner txtFile = new Scanner(new File("C:\\Users\\Desktop\\testfolder\\test.txt"));
while (txtFile.hasNext()) {
String word = txtFile.next();
if (map.containsKey(word)) {
int count = map.get(word) + 1;
map.put(word, count);
} else {
map.put(word, 1);
}
}
txtFile.close();
for (Map.Entry<string, integer=""> entry : map.entrySet()) {
System.out.println(entry);
}
}
}
Aquí está una parte de la salida:
been=2
</string,></string,></string,>
upvotes=1
don't=1
leading=1
about=1
your=1
I've=1
Follow=13
Elder=1
1%=3
would=1
davy.ai
Para contar las palabras en una carpeta de archivos de texto (txt), es necesario modificar el código para que recorra todos los archivos del directorio y realice la operación de conteo de palabras en cada archivo individualmente. Aquí hay un código actualizado que hace eso:
El código actualizado toma el nombre de un directorio como argumento de línea de comando y comprueba si existe y es un directorio. Luego, recorre todos los archivos del directorio y realiza la operación de conteo de palabras en cada archivo que es un archivo de texto (txt). El resto del código es el mismo que antes, iterando a través del mapa de conteo de palabras e imprimiendo los recuentos.
Para ejecutar el código actualizado, use el siguiente comando:
Reemplace
/ruta/al/directorio
con la ruta real al directorio que contiene los archivos de texto (txt) para los cuales desea contar las palabras.</string,></string,>