Arquivo TXT

4 respostas
C

Bom Dia.

Gostaria de saber como faço para juntar dois arquivos txt??

Obrigada.

4 Respostas

thiago.correa

Leia o conteúdo de um dos arquivos depois escreva no final do outro arquivo!
Caso a dúvida seja ler e escrever em arquivos, aqui no GUJ tem um tutorial explicando isso
http://guj.com.br/article.show.logic?id=13

Tenta escrever algo e qualquer dúvida é só postar!

C

Obrigada pela resposta, eu só não consegui ainda é juntar dois arquivos em um só.

ViniGodoy

Oi. O método copiarArquivos abaixo faz o que você quer:

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.nio.channels.FileChannel;
import java.util.Arrays;

public class Teste {
    public static void copiarArquivos(String destino, String... origens) throws IOException {
        File destination = new File(destino);
        if (destination.exists()) {
            destination.delete();
        }

        FileChannel destinationChannel = null;

        try {
            destinationChannel = new FileOutputStream(destination).getChannel();
            for (String origem : origens) {
                //Se o arquivo de origem não existir, pula para o próximo
                File source = new File(origem);
                if (!source.exists()) {
                    System.err.println("Arquivo '" + origem + " não existe, pulando.");
                    continue;
                }
                FileChannel sourceChannel = null;
                try {
                    sourceChannel = new FileInputStream(source).getChannel();
                    sourceChannel.transferTo(0, sourceChannel.size(),
                            destinationChannel);
                } finally {
                    if (sourceChannel != null && sourceChannel.isOpen()) {
                        sourceChannel.close();
                    }
                }

            }
        } finally {
            if (destinationChannel != null && destinationChannel.isOpen()) {
                destinationChannel.close();
            }
        }
    }

    public static void main(String args[]) throws IOException
    {
        if (args.length < 2)
        {
            System.out.println("Uso: Teste destino1.txt origem1.txt origem2.txt");
            return;
        }

        copiarArquivos(args[0], Arrays.copyOfRange(args, 1, args.length));
    }
}

Note que por primeiro você deve colocar o nome do arquivo de destino (diferente do copy, onde você começa com a origem) e depois você pode colocar qualquer número de arquivos origem. Esses arquivos origem serão copiados sequencialmente, no destino.

O main desse programa permite que você una vários arquivos usando o prompt.

Esse método usa os channels, que são uma das formas mais otimizadas de se copiar arquivos em Java.

Detalhe… se isso era um trabalho de faculdade, acho pouco provável que seu professor aceite esse código. Nesse caso, siga o tutorial acima, indicado pelo colega.

C

Muito Obrigada, Vini. Era o que eu precisava, mais não é um trabalho de escola é para meu serviço.

Criado 29 de março de 2010
Ultima resposta 29 de mar. de 2010
Respostas 4
Participantes 3