[Java] Supprimer Doublons d'un fichier

Résolu/Fermé
khalistoo Messages postés 7 Date d'inscription vendredi 6 juillet 2007 Statut Membre Dernière intervention 13 novembre 2009 - 12 nov. 2009 à 17:11
khalistoo Messages postés 7 Date d'inscription vendredi 6 juillet 2007 Statut Membre Dernière intervention 13 novembre 2009 - 13 nov. 2009 à 11:17
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
A voir également:

1 réponse

khalistoo Messages postés 7 Date d'inscription vendredi 6 juillet 2007 Statut Membre Dernière intervention 13 novembre 2009 1
13 nov. 2009 à 11:17
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