Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/gitfrandu4/text-processing
Práctica de P4 - Procesamiento de ficheros de forma concurrente (Java)
https://github.com/gitfrandu4/text-processing
concurrencia java
Last synced: 6 days ago
JSON representation
Práctica de P4 - Procesamiento de ficheros de forma concurrente (Java)
- Host: GitHub
- URL: https://github.com/gitfrandu4/text-processing
- Owner: gitfrandu4
- Created: 2020-05-14T00:09:20.000Z (over 4 years ago)
- Default Branch: master
- Last Pushed: 2020-05-14T01:07:10.000Z (over 4 years ago)
- Last Synced: 2023-12-09T19:42:39.562Z (about 1 year ago)
- Topics: concurrencia, java
- Language: Java
- Homepage:
- Size: 1.52 MB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# textprocessing
* Asignatura: Programación IV
* Práctica 3 - Programación Concurrente
* Facultad: Escuela de Ingeniería Informática (ULPGC)## Procesamiento de ficheros de texto
El funcionamiento del programa es: dado un conjunto de ficheros, los procesa y obtiene una lista de las 10 palabras más frecuentes, ordenadas de mayor a menor.
### Estructura general
Los ficheros a procesar, que contienen texto sin formato, se encuentran en el directorio **datos** del *HOME* del usuario actual.
El sistema realiza las siguientes acciones:
- Identifica el conjunto de ficheros a procesar —ya implementado en **`Tools.fileLocator()`**— y almacena sus nombres en un objeto de la clase **`FileNames`**.
- Varios hilos de la clase **`FileReader`** van tomando uno a uno los nombres de fichero de un objeto **`FileNames`** y se van encargando de leer los correspondientes ficheros y añadir su contenido a un objeto de la clase **`FileContents`**.
- Varios hilos de la clase **`FileProcessor`** van leyendo uno a uno el contenido de los ficheros de un objeto **`FileContents`** y lo procesan, separando las palabras y contabilizando su frecuencia, actualizando el resultado sobre un "contador" común de la clase **`WordFrequencies`**.
- Se ordenan y seleccionan las 10 palabras más frecuentes partiendo de un objeto **`WordFrequencies`** —ya implementado en **`Tools.wordSelector()`**.Para construir el sistema se crean distintas clases que representen los distintos procesos y contenedores de datos que maneja el sistema.