Comparar dois arquivos .csv gerar um outro

5 respostas
easrml

Olá pessoal boa tarde,

Sou iniciante em Java e estou com um problema… tenho 2 arquivos em .csv gostaria de saber se tem como ler todas as linhas desses dois arquivos e gerar um terceiro apenas com as linhas diferentes.

Ex:
Arq1.csv

1 nome1 tel1 cel1
2 nome2 tel2 cel2
3 nome3 tel3 cel3

Arq2.csv

1 nome1 tel1 cel1
3 nome3 tel3 cel3

Arq3.csv (Atualizado)

2 nome2 tel2 cel2

Galera, desde já agradeço.

Obrigado…

5 Respostas

T

As “linhas diferentes” são:

  • Todas as linhas presentes no arquivo 2 que não estão no arquivo 1, ou

  • Todas as linhas que estão no arquivo 1 que não estão no arquivo 2 e também as linhas que estão no arquivo 2 mas não estão no arquivo 1?

No primeiro caso, você pode usar o método “removeAll” em apenas um sentido ( removeAll ). No segundo caso, você tem de usar “removeAll” em dois sentidos, e unir os valores retornados.

Crie uma classe que representa uma linha desse arquivo (CSV é separado por vírgulas ou, no caso do Excel, por pontos-e-vírgulas. Que raio de arquivo “CSV” você nos passou?)

Andre_Brito

thingol:
Crie uma classe que representa uma linha desse arquivo (CSV é separado por vírgulas ou, no caso do Excel, por pontos-e-vírgulas. Que raio de arquivo “CSV” você nos passou?)

Apesar de eu concordar com você que CSV é um arquivo separado por vírgulas, muitas pessoas separam os arquivos por espaço e salvam como CSV pra que, na hora de abrir o arquivo com o Calc, seja perguntado de que modo está feita a separação dos dados em cada linha.

Abraço.

easrml

Olá… então… todas as linhas do arq2 estão no arq1… como te disse anteriormente estou iniciando em JAVA então me desculpe pelo exemplo que te passei… é que onde trabalho fazemos algumas manipulações de arquivos que hj isso é feito em Shell Script mais teremos q migrar para JAVA.

Obrigado.

T

Não é por nada não, mas acho que para esse tipo de coisa usar shell script costuma ser melhor.
Por exemplo, se seu shell script usa algo parecido com “diff -d -B” ou alguma opção mais complexa do diff, é difícil fazer a mesma coisa em Java. Se você está simplesmente movendo o sistema do Linux/Unix para Windows, use algum pacote como o Cygwin ou o UnxUtils para ter o “diff” ou outros programas que você já vinha usando antes.

easrml

Humm… blz vou ver como da pra se virar por aki msm…

Obrigado pelas informações!

Otimo ano novo…

Criado 29 de dezembro de 2008
Ultima resposta 30 de dez. de 2008
Respostas 5
Participantes 3