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();
}
}
}