Encontrar arquivos duplicados é um projeto prático de Java para quem está pronto para trabalhar com o conteúdo real dos arquivos. Você criará um verificador reutilizável de somente leitura que encontra grupos completos de arquivos iguais, preservando cada caminho original. Nomes diferentes podem esconder bytes idênticos; nomes ou tamanhos iguais podem esconder conteúdos distintos.
O curso contém dois laboratórios guiados e um desafio. Primeiro, você lerá fluxos binários e salvará um inventário completo de caminhos. Depois, usará tamanho e impressões digitais SHA-256 para reduzir os candidatos, confirmará a igualdade comparando bytes reais e recriará o relatório após alterar uma cópia de prática. O desafio aplica os mesmos mecanismos a outro acervo. Cada laboratório começa de forma independente. Reserve cerca de 150 minutos, uma estimativa do autor que inclui leitura e correções comuns.
O que você aprenderá
Ao concluir o curso, você poderá:
- ler arquivos binários com
try-with-resourcese usar o comprimento real retornado em cada leitura; - calcular impressões digitais SHA-256 para candidatos e inventariar todos os caminhos, incluindo arquivos vazios e buffers finais parciais;
- confirmar a igualdade comparando bytes reais, sem tratar nomes, tamanhos ou resumos como prova;
- manter todos os membros de um grupo de arquivos duplicados, inclusive grupos com três ou mais arquivos, deixando de fora os arquivos únicos;
- recriar um relatório atual após mudar um arquivo de prática, preservando todos os originais;
- gravar relatórios fora da árvore examinada e informar falhas para entradas ilegíveis ou não suportadas.
Para quem é este curso
Este curso é indicado para estudantes de Java que desejam combinar tratamento de arquivos da biblioteca padrão, coleções e exceções em um programa de terminal útil.
Pré-requisitos: Classes, métodos, coleções básicas, exceções, leitura elementar de arquivos em Java e navegação básica no terminal. Gerenciar uma biblioteca comunitária de ferramentas, especialmente o segundo laboratório guiado, oferece a base de leitura de arquivos e exceções de E/S; conhecimentos equivalentes também servem. Este curso explica fluxos binários, contagens de leitura, fechamento de recursos e a diferença entre candidatos e comparação de bytes antes do uso.
Ambiente de aprendizagem: A LabEx fornece um WebIDE no navegador com terminal integrado, compilador Java, código inicial e arquivos reais de exemplo, incluindo pequenas imagens PNG. Você pode executar o programa e examinar os arquivos sem instalar Java localmente. Os comandos, rótulos e resultados permanecem em inglês.
Perguntas frequentes
O programa exclui os arquivos duplicados?
Não. A entrega é um verificador e um relatório completo de grupos para revisão. Todos os originais são preservados; exclusão automática, reparo e limpeza de disco estão fora do projeto.
Por que comparar bytes depois de calcular uma impressão digital?
O tamanho e o SHA-256 ajudam a selecionar candidatos. A decisão final vem da comparação do conteúdo real, mantendo todos os caminhos iguais e separando arquivos de mesmo tamanho com conteúdo diferente. O curso não considera um resumo uma prova matemática de igualdade.
Quais entradas o projeto aceita?
Arquivos e diretórios comuns que permanecem estáveis durante a execução, incluindo espaços e nomes UTF-8. Links simbólicos, arquivos especiais e caminhos com tabulações ou quebras de linha são rejeitados. Uma falha de leitura não pode parecer uma varredura completa bem-sucedida. Os relatórios ficam fora da árvore de entrada. Cada laboratório tem seus próprios dados e não precisa de arquivos de uma VM anterior; o projeto não garante instantâneos consistentes durante alterações concorrentes.

