Comparar arquivos CSV em Java

Já discutimos a maneira básica de comparar dois arquivos CSV em nossos aplicativos Java. Hoje, neste artigo, aprenderemos ainda mais a comparar mais de dois CSVs em Java. Discutiremos ainda mais como comparar arquivos CSV protegidos por senha. Por fim, examinaremos como aceitar e rejeitar as alterações encontradas usando a API de comparação dentro do aplicativo Java.

Os seguintes tópicos são abordados abaixo:

API Java para comparar arquivos CSV

GroupDocs.Comparison apresenta sua API Java que permite comparar arquivos CSV com diferentes opções. Vou usá-lo novamente para comparar arquivos CSV dentro do aplicativo Java. Além disso, ele suporta a comparação de mais de dois arquivos CSV, aceitando e rejeitando as alterações descobertas e comparando arquivos protegidos por senha.

Baixe e configure

Obtenha a biblioteca de comparação de CSV na seção downloads. Para aplicativos Java baseados em Maven, adicione a seguinte configuração em pom.xml.

<repository>
	<id>GroupDocsJavaAPI</id>
	<name>GroupDocs Java API</name>
	<url>http://repository.groupdocs.com/repo/</url>
</repository>
<dependency>
        <groupId>com.groupdocs</groupId>
        <artifactId>groupdocs-comparison</artifactId>
        <version>22.3</version> 
</dependency>

Exemplos de execução para seus recursos também estão disponíveis no GitHub. Visite sua documentação e Referência da API para obter orientação.

Comparar arquivos CSV em Java

A comparação básica de dois arquivos CSV usando Java já foi discutida em um artigo separado. Lá, examinamos o código-fonte Java de comparação de arquivos, a entrada de amostra e o arquivo de saída de comparação. Você pode visitar esse artigo antes de seguir em frente.

Compare mais de dois arquivos CSV em Java

Se o requisito for comparar mais de dois arquivos CSV, é bastante semelhante, pois estamos comparando apenas dois arquivos. Basta adicionar o terceiro arquivo ao objeto Comparer.

A seguir estão as etapas para comparar mais de dois arquivos CSV em Java.

  • Instancie a classe Comparer com o primeiro arquivo CSV.
  • Adicione o segundo arquivo usando o método add apropriado.
  • Da mesma forma, adicione tantos outros arquivos CSV usando os métodos add.
  • Finalmente, chame o método compare para obter os resultados da comparação.

O código-fonte Java a seguir compara vários arquivos CSV. Como os resultados da comparação, ele gera arquivos CSV e HTML separados. O arquivo de saída HTML destaca as alterações identificadas em cores diferentes.

// Compare vários (mais de 2) arquivos CSV em Java

Comparer comparer = new Comparer("path/comma-separated-file-1.csv");
comparer.add("path/comma-separated-file-2.csv");
comparer.add("path/comma-separated-file-3.csv");
// ...
// ...
final Path outputFilePath = comparer.compare("path/comparison-result.csv");

Comparar arquivos CSV protegidos por senha em Java

Existem diferentes opções disponíveis que podem ser usadas ao carregar documentos diferentes. Se seus arquivos CSV estiverem protegidos por senha, você poderá fornecer a senha durante o carregamento. O restante do procedimento permanece o mesmo para comparar vários arquivos CSV protegidos por senha.

A seguir estão as etapas de como comparar arquivos CSV protegidos por senha em Java.

  • Prepare as opções de carregamento usando a classe LoadOptions e defina a senha para abrir o arquivo CSV.
  • Agora carregue o primeiro arquivo CSV para comparar enquanto inicializa a classe Comparer.
  • Adicione o segundo arquivo usando o método add apropriado.
  • Da mesma forma, adicione tantos outros arquivos CSV usando qualquer um dos métodos de adição.
  • Por fim, invoque o método compare para obter o resultado da comparação de todos os arquivos adicionados.

O código-fonte a seguir compara vários arquivos CSV protegidos por senha em Java e gera os resultados da comparação.

// Comparar arquivos CSV protegidos por senha usando Java

Comparer comparer = new Comparer("path/comma-separated-file-1.csv", new LoadOptions("file1-password"));
comparer.add("path/comma-separated-file-2.csv", new LoadOptions("file2-password"));
final Path outputFilePath = comparer.compare("path/comparison-result.csv");

Aceitar ou rejeitar alterações identificadas de arquivos CSV em Java

Assim como o recurso de rastreamento de alterações do Microsoft Word que nos permite aceitar ou rejeitar as alterações feitas nos documentos. Você pode implementar o mesmo recurso nos aplicativos Java. Após realizar a comparação de arquivos, você pode aceitar ou rejeitar cada uma das alterações identificadas. A seguir estão as etapas para comparar arquivos CSV e aceitar ou rejeitar as alterações identificadas.

  • Carregue os arquivos CSV de origem e de destino usando a classe Comparer.
  • Execute a comparação dos arquivos carregados usando o método de comparação.
  • Busque as alterações identificadas usando o método getChanges.
  • Agora você pode percorrer as alterações e definir sua ComparisonAction de acordo com cada alteração.
    • Para as alterações acordadas, você pode definir como ACEITAR.
    • Para as alterações em desacordo, você pode definir como REJECT.
  • Por fim, chame o método applyChanges para obter o documento resultante com as alterações aplicadas.

O código-fonte Java a seguir compara dois arquivos CSV e, em seguida, aceita e rejeita as alterações encontradas.

// Aceite ou rejeite as alterações identificadas comparando arquivos CSV em Java

Comparer comparer = new Comparer("path/comma-separated-file-1.csv");
comparer.add("path/comma-separated-file-2.csv");

comparer.compare("path/comparison-result.csv");

ChangeInfo[] changes = comparer.getChanges();
changes[0].setComparisonAction(ComparisonAction.REJECT);
changes[1].setComparisonAction(ComparisonAction.ACCEPT);

comparer.applyChanges("path/comparison-result.csv", new SaveOptions(), new ApplyChangeOptions(changes));

Obtenha uma licença de API gratuita

Você pode obter uma licença temporária gratuita para usar a API sem as limitações de avaliação.

Conclusão

Para resumir, hoje aprendemos a maneira Java como comparar dois ou mais arquivos CSV. Junto com a opção de aceitar e rejeitar as alterações identificadas, também aprendemos a comparar arquivos CSV protegidos por senha nos aplicativos Java.

Você pode encontrar muitas outras opções para personalizar os resultados da comparação. Você pode definir a sensibilidade de comparação, mostrar apenas a página de resumo, ignorar lacunas e muito mais. Saiba mais sobre esses recursos na documentação.

Você pode começar a criar seus próprios aplicativos de comparação para vários formatos de documento suportados. Para dúvidas, entre em contato conosco através do fórum.

Veja também