Este projeto apresenta uma solução técnica para a leitura, mapeamento e filtragem de volumes de dados (5.000+ registros) provenientes de arquivos CSV. O foco do desenvolvimento foi aplicar conceitos de Estrutura de Dados e I/O de Arquivos em ambiente Java, garantindo a integridade dos dados e a eficiência na busca de informações em sistemas Linux (Ubuntu).
A aplicação utiliza o padrão Java Beans para representar os registros de discentes da Universidade Federal de Sergipe (UFS). O mapeamento é realizado de forma declarativa através da biblioteca OpenCSV, permitindo que colunas específicas do arquivo bruto sejam convertidas diretamente em atributos de objetos na memória, otimizando o consumo de recursos.
- Leitura: Implementada via
CsvToBeanBuilderpara garantir a conversão segura de tipos e tratamento automático de aspas e delimitadores. - Modelo de Dados: Utilização de anotações
@CsvBindByPositionpara garantir a persistência da estrutura mesmo em caso de refatoração de nomes de variáveis. - Processamento: Implementação de busca linear com normalização de strings para garantir a compatibilidade de busca entre diferentes encodings (UTF-8 e ISO-8859-1).
- Escrita: Módulo de exportação de resultados utilizando
BufferedWritereFileWriterpara persistência eficiente em arquivos.txt.
O desenvolvimento deste projeto foi fundamentado nas seguintes fontes de documentação e melhores práticas da comunidade Java:
- Mapeamento de Beans com OpenCSV: GeeksforGeeks - Mapping CSV to JavaBeans
- Guia Completo de Configuração OpenCSV: Baeldung - Guide to OpenCSV
- Parsing de Arquivos em Java: Mkyong - How to read and parse CSV
- Persistência e Escrita de Arquivos (Writer): DigitalOcean - Java Write to File (BufferedWriter)
- Dependências: O projeto é gerenciado via Maven. Certifique-se de que o
pom.xmlpossui as bibliotecasopencsvelombokdevidamente declaradas. - Diretórios: O arquivo CSV deve estar localizado em
src/main/resourcespara ser carregado viaClassLoader, garantindo a portabilidade do projeto. - Clone o repositório:
git clone https://github.com/seu-usuario/nome-do-repo.git
- Certifique-se de ter o Maven instalado:
mvn -version
- Execução via Terminal:
mvn clean compile mvn exec:java -Dexec.mainClass="com.reader_csv.ReadFileCSV"
Os dados utilizados neste projeto são de domínio público e foram obtidos através do Portal de Dados Abertos da Universidade Federal de Sergipe (UFS).
- Dataset: Discentes de Graduação (2025.1)
- Origem: Dados Abertos UFS - Discentes
Este projeto foi desenvolvido para fins acadêmicos na disciplina de Engenharia de Dados da Universidade Federal de Sergipe (UFS).