[Java] Supprimer Doublons d'un fichier

Résolu
khalistoo Messages postés 7 Statut Membre -  
khalistoo Messages postés 7 Statut Membre -
Bonjour,

Je decouvre JAVA et j essaye tant bien que mal de creer un "deduper". Autrement dit j essaye de supprimer les doublons d'un fichier txt, tout ce qu il y a de plus simple.

J ai trouve quelques exemples mais je suis incapable d en faire marcher un seul, et surtout je ne les comprends pas tous. Est ce que quelqu un pourrait juste m expliquer simplement, un code tout bete, parce que j avoue que la c est tres frustrant. En perl je me prendrai pas vraiment la tete, je mettrai tout dans un array, j arrangerai par ordre alphabetique (sort) et ensuite ferai une loop pour comparer la ligne actuelle avec la precedente.

Et j ai peur que la complexite de java me deroute totallement. Alors je sais biensure qu a base de ligne de commande je pourrai le faire, qu en perl aussi, mais j ai besoin malheureusement de le faire en Java pour au moins reussir a progresser dans ce language et comprendre le fonctionnement,

Merci de votre aide
Configuration: Windows XP
Firefox 3.5.5

1 réponse

  1. khalistoo Messages postés 7 Statut Membre 1
     
    En fasit je me suis creuse la tete toute la nuit, et c est bon, je crois que j ai trouve.
    Donc je pose une solution (je suis sure qu il y en a des millards d autres et que ce n est peut etre pas la meilleur soluce qui existe mais en tout cas, ca marche)

    import java.util.*;
    import java.io.*;
    
    public class PurgeTest {
        public static void main(String args[]) {
            ArrayList<String> arrayOfStrings = new ArrayList<String>();
            try {
                BufferedReader reader = new BufferedReader(new FileReader("c:\\test.txt"));
                FileWriter fstream = new FileWriter("c:\\out.txt");
                BufferedWriter out = new BufferedWriter(fstream);
                String line = "";
                while ((line = reader.readLine()) != null) {
                    arrayOfStrings.add(line);
                    HashSet<String> h = new HashSet<String>(arrayOfStrings);
                    arrayOfStrings.clear();
                    arrayOfStrings.addAll(h);
                }
                for (String readline : arrayOfStrings) {
                	out.write(readline + "\n");
                }
                out.close();
                reader.close();
            }
            catch (Exception ex) {
            	System.out.println("Exception: " + ex.getMessage()); 
           }
        }
    }
    
    


    Bien entendu, je suis pret a ecouter les conseils des autres, et vos avis sur le sujet.

    P.S: Comment change t'on le status de son post ?

    C est bon j ai trouve. Merci
    1