2016-07-25 1 views
0

Je veux sélectionner plusieurs fichiers texte en utilisant un JFileChooser, puis les comparer. Le code de choisir plusieurs fichiers est comme ci-dessousJFileChooser pour sélectionner plusieurs fichiers texte et les comparer

JFileChooser chooser = new JFileChooser(); 
    chooser.setMultiSelectionEnabled(true); 
    Component frame = null; 
    chooser.showOpenDialog(frame); 
    File[] files = chooser.getSelectedFiles(); 

Comment utiliser la poignée de fichiers pour comparer plusieurs fichiers. Est-il possible de comparer plusieurs fichiers texte en utilisant cette méthode. J'ai plusieurs fichiers texte, et je veux vérifier si le contenu de tous les fichiers correspondent. Si le contenu est exactement le même, je vois MATCH et si les fichiers texte sont différents, je vois FAIL avec la différence de contenu. Merci beaucoup pour votre aide

+0

Que voulez-vous comparer? Le texte ou les mots? S'il vous plaît ajouter plus de détails à votre question ... –

+0

Que voulez-vous dire par "comparer"? Afficher une liste de différences sur la console (aka 'diff')? Afficher une comparaison côte-à-côte (aka 'WinMerge' sur Windows ou des outils similaires sous Linux)? Il n'y a rien de intégré à Java pour faire l'une ou l'autre de ces tâches. –

+0

une brève description de ce que je veux comparer est ajouté. Fondamentalement, j'ai plusieurs fichiers texte, et je veux vérifier si le contenu de tous les fichiers correspondent. Si le contenu est exactement le même, je vois MATCH et si les fichiers texte sont différents, je vois FAIL avec la différence de contenu. – sam

Répondre

0

utilisation FileUtils

exemple:

for(int i=0; i<files.length-1; i++) 
    for(int j=i+1; j<files.length; j++) 
     if(FileUtils.contentEquals(files[i], files[j])) 
      System.out.println("file #" + i + " and file #" + j + " are identical."; 
     else 
      System.out.println("file #" + i + " and file #" + j + " are different."; 

Exemple # 2 - sans utiliser des bibliothèques externes vous pouvez utiliser la technique décrite dans this répondre.

for(int i=0; i<files.length-1; i++) { 
    for(int j=i+1; j<files.length; j++) { 
     byte[] f1 = Files.readAllBytes(files[i]); 
     byte[] f2 = Files.readAllBytes(files[j]); 

     if (Arrays.equals(f1, f2)) 
      System.out.println("file #" + i + " and file #" + j + " are identical."; 
     else 
      System.out.println("file #" + i + " and file #" + j + " are different."; 
    } 
} 

P.S .: Puisque vous ne l'avez pas mentionné dans votre question, je suppose ici que vous voulez comparer le contenu de deux fichiers et déterminer si elles sont égales ou non.

+0

Oui Raman, c'est ce que je veux faire. Merci pour l'aide. Juste une requête, nécessite-t-elle une version Java spécifique pour fonctionner. FileUtil ne peut pas être résolu est l'erreur à laquelle je fais face – sam

+0

Salut @sam avez-vous importé FileUtils? comme ceci 'importer org.apache.commons.io.FileUtils;' –

+0

Je vais devoir télécharger ** org.apache.commons.io.jar ** pour cela séparément je suppose que parce que eclipse ne donne pas de suggestion pour une telle importation comme de maintenant. Je dois faire un fichier jar et distribuer le même parmi les autres membres et je ne suis pas sûr que tous les auront. existe-t-il un autre moyen, autre que FileUtils. – sam