Código que cópia as informações de vários arquivos TXT para um so arquivo em java

1 resposta
java
B

Boa Noite, sou novo na programação e estou tendo dificuldade em criar um código pra ler vários arquivos TXT e cópiar as informações para um arquivo so,
Desenvolvi esse código até agora, mas estou fazendo uma função para ler o arquivo aonde vai agrupar todas as informações dos outros arquivos primeiro e comparar as linhas já contidas antes de inserir, mas agarrei aqui e estou com duvida. Poderia me ajudar a proceder

package Unificar;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.List;

public class Unificar {

    public static void main(String[] args) {
        try {
            Unificar programa = new Unificar();
            programa.executar();
        } catch (Throwable t) {
            t.printStackTrace();
        }
    }

    private List<String> linhasCopiadas;

    private void executar() throws IOException {
        File diretorio = new File("C:\\Arq"); // Pasta de origem 
        File arquivoDestino = new File("C:\\Users\\Belmires\\Desktop\\Teste.txt"); // Pasta do novo arquivo criado
        PrintWriter destino = new PrintWriter(arquivoDestino);
        linhasCopiadas = new ArrayList<>();
        BufferedReader ler = new BufferedReader(new FileReader(arquivoDestino));
        ler(){
            
        
        }
        
        for (File arquivo : diretorio.listFiles()) {
            BufferedReader origem = new BufferedReader(new FileReader(arquivo));
            copiar(origem, destino);
            origem.close();
        }
        destino.flush();
        destino.close();
    }
//            Função que compara as linhas
    private void copiar(BufferedReader origem, PrintWriter destino) throws IOException {
        String linha = null;
        while ((linha = origem.readLine()) != null) {
            if (!linhasCopiadas.contains(linha)) { // Se a linha ainda não foi copiada pro arquivo de destino
                destino.println(linha); // Copia a linha no arquivo de destino
                linhasCopiadas.add(linha); // Joga a linha na lista de linhas copiadas
            }
        }
    }
    
    private void ler (BufferedReader destino){
        try {
            while (destino.ready()){
                linhasCopiadas.add(destino.readLine());
            }
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
    
}

1 Resposta

T
Tópico duplicado e com resposta em outro tópico pelo colega <a class="mention" href="/u/staroski">@staroski</a>.

<aside class="quote quote-modified" data-post="1" data-topic="393424">
  <div class="title">
    <div class="quote-controls"></div>
    <img alt="" width="20" height="20" src="/letter_avatar_proxy/v4/letter/b/ecae2f/40.png" class="avatar">
    <a href="https:/t/codigo-que-copia-as-informacoes-de-varios-arquivos-txt-para-um-so-arquivo-em-java/393424">Código que cópia as informações de vários arquivos TXT para um so arquivo em java</a> <a class="badge-wrapper  bullet" href="/c/programacao">Programação</a>
  </div>
  <blockquote>
    Boa tarde, sou novo na programação e estou tendo dificuldade em criar um código pra ler vários arquivos  TXT e cópiar as informações para um arquivo so, saltando linha 
Desenvolvi esse código até agora, mas não está lendo mais de um arquivo e não está saltando linha 
package Ler; 
import java.io.BufferedReader; 
import java.io.File; 
import java.io.FileNotFoundException; 
import java.io.FileOutputStream; 
import java.io.FileReader; 
import java.io.IOException; 
public class Teste6 { 
public Test
  </blockquote>
</aside>
Criado 7 de outubro de 2019
Ultima resposta 7 de out. de 2019
Respostas 1
Participantes 2