To check if there are files with a specific extension you can use the contains() function within the range where you list your files, this way:
for(File file:diretorio.listFiles()) {
if(file.getName().contains(".txt")) { // verificando se o arquivo é da extensão txt
arquivos.add(file.getAbsolutePath()); // se sim, adiciona ele ao array de arquivos
}
}
Note that in this code I am saving the path of files with extension txt found in order to access them later. To be able to compare the information of both you need to use the Bufferedreader and compare row by row of the files, checking if they are the same or different until the files reach the end (that is, when the contents of your lines are empty), thus:
Bufferedreader reader1 = new Bufferedreader(new Filereader(.get(0));
Bufferedreader reader2 = new Bufferedreader(new Filereader(.get(1 files)));
String linha1 = leitor1.readLine();
String linha2 = leitor2.readLine();
int numeroLinha = 1;
while (linha1 != null && linha2 != null) {
if(! linha1.equalsIgnoreCase(linha2)) {
System.out.println("Diferença encontrada na linha " + numeroLinha + ": \n");
System.out.println("Arquivo 1: " + linha1);
System.out.println("Arquivo 2: " + linha2);
System.out.println("--------------------------\n");
arquivosIguais = false;
}
linha1 = leitor1.readLine();
linha2 = leitor2.readLine();
numeroLinha++;
}
The complete code gets:
import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.nio.file.Path;
import java.util.ArrayList;
public class ListagemArquivoPasta {
public static void main(String[] args) throws IOException, FileNotFoundException {
ArrayList<String> arquivos = new ArrayList(); // Criando um array para guardar os nomes dos arquivos
File diretorio = new File("C:\\Data"); // realiza a busca do que tem dentro da pasta rede
boolean arquivosIguais = true;
for(File file:diretorio.listFiles()) {
if(file.getName().contains(".txt")) { // verificando se o arquivo é da extensão txt
arquivos.add(file.getAbsolutePath()); // se sim, adiciona ele ao array de arquivos
}
}
BufferedReader leitor1 = new BufferedReader(new FileReader(arquivos.get(0)));
BufferedReader leitor2 = new BufferedReader(new FileReader(arquivos.get(1)));
String linha1 = leitor1.readLine();
String linha2 = leitor2.readLine();
int numeroLinha = 1;
while (linha1 != null && linha2 != null) {
if(! linha1.equalsIgnoreCase(linha2)) {
System.out.println("Diferença encontrada na linha " + numeroLinha + ": \n");
System.out.println("Arquivo 1: " + linha1);
System.out.println("Arquivo 2: " + linha2);
System.out.println("--------------------------\n");
arquivosIguais = false;
}
linha1 = leitor1.readLine();
linha2 = leitor2.readLine();
numeroLinha++;
}
if (arquivosIguais) {
System.out.println("\nArquivos iguais");
} else {
System.out.println("\nArquivos diferentes");
}
}
}
Note that this code compares only two files with extension txt, but I think it gives you a basis on how to compare a larger amount of files.
Welcome to Stackoverflow! Please explain the problem better, and if possible include a example of code that reproduces what is happening, because your question is not noticeable. See Help Center How to Ask.
– Gabriel Oliveira