Comparar 2 arquivos de texto e adicionar o conteudo de um que não exista no outro

1 resposta
brunoenrike

Ola sou iniciante em Java (bem iniciante) e precisava o mais rapido possivel criar um programa que faça isso:
Ler dois arquivos de texto e compara-los, oque tiver no primeiro e não tiver no segundo o java ira adicionar o conteudo que falta no segundo arquivo,
exemplo:


Arquivo1.txt

Cheguei ao parque
e então resolvi matar o tempo


Arquivo2.txt

Sai de casa cedo
Cheguei ao parque


Note que ambos tem a frase “Cheguei ao parque” mas o Arquivo2 não tem a frase “e então resolvi matar o tempo”, eu quero que o Java
copie esta linha inteira ou mais se tiver do Arquivo1 e a adicione no Arquivo2 exatamente logo depois da linha que ambos possuem igual
Assim o Arquivo2 ficara no final assim:


Arquivo2.txt

Sai de casa cedo <----------- Essa não tem problema de o Arquivo1 não a ter pois quem sera o arquivo final sera sempre o ultimo arquivo no caso aqui o Arquivo2.
Cheguei ao parque <------ Essa frase ambos os arquivos tinham então o java deve ignorar ela.
e então resolvi matar o tempo <----Essa frase estava no arquivo1 não tinha no Arquivo2.


Por favor se alguem souber como fazer esse programa me fale pois é urgente.

***Os arquivos de texto serão muito grandes, pra mim fazer uma revisão dessas manualmente iria demorar muito.
Sempre sera comparado dois arquivos apenas. Um tera linhas com frases que o outro não tem.

Pra mim esse programa é extremamente dificil de fazer.

Obrigado.

1 Resposta

WellingtonRamos

Ao invés de construir um programa assim, não seria interessante utilizar um programa que já exista e faça isso?

Se o caminho é sempre em uma via: O que tem no primeiro, adiciona no segundo (e não tiver o remova) simplifica um pouco a lógica. Porém se houverem diferenças dentro da linha, já não ajuda muito…

Você deve iniciar lendo ambos os textos e arquivando-os em memória (se as diferenças ocorrerem apenas em linhas que existam ou não, usaria List para manter as informações)
Compararia linha a linha e caso não encontre nenhuma igual, posiciono no início, se encontrar igual, passo a buscar a partir dessa e assim por diante.

É possível fazer, mas proponho que tente e, depois poste aqui o que já fez mas não funciona perfeitamente para ajudarmos.

Criado 14 de março de 2013
Ultima resposta 14 de mar. de 2013
Respostas 1
Participantes 2