Lire des gros fichiers

Résolu
coinki Messages postés 57 Date d'inscription mercredi 26 février 2003 Statut Membre Dernière intervention 6 juillet 2009 - 3 sept. 2007 à 17:08
coinki Messages postés 57 Date d'inscription mercredi 26 février 2003 Statut Membre Dernière intervention 6 juillet 2009 - 4 sept. 2007 à 09:11
    Bonjour,
je veux récupèrer un fichier texte relativement lourd (7Mo) pour vérifier s'il  contient  certains termes.
Je fais le code suivant :

BufferedReader reader = null;
        String txt = "";
        try {
            reader = new BufferedReader(new FileReader("mon_fichier.txt"));
            String line;
            int i=0;
            while ((line = reader.readLine()) != null){
                System.out.println(i);
                txt+=line+"\n";
                i++;
            }
        }
        catch (Exception e) {
        }
        finally{
            try {
                if (reader==null){
                    reader.close();
                }
            } catch (IOException e) {}
        }
       
        System.out.println(txt);

Mais c'est très très lent.

Quelqu'un sait comment lire plus vite ?

Alain

2 réponses

Twinuts Messages postés 5375 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 14 juin 2023 111
3 sept. 2007 à 19:58
Salut,

regarde du coté de la classe RandomAccessFile et penche toi sur les méthodes  [http://java.sun.com/j2se/1.5.0/docs/api/java/io/RandomAccessFile.html#readFully%28byte%5B%5D%29 readFully(byte[])] ou [http://java.sun.com/j2se/1.5.0/docs/api/java/io/RandomAccessFile.html#readFully%28byte%5B%5D,%20int,%20int%29 readFully(byte[], int, int)]

sinon toujours avec la classe RandomAccessFile essais de bufferiser ta lecture en jouant avec les méthodes seek(long) et getFilePointer()

------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."

OoWORAoO
3
coinki Messages postés 57 Date d'inscription mercredi 26 février 2003 Statut Membre Dernière intervention 6 juillet 2009
4 sept. 2007 à 09:11
Merci pour ta réponse, c'est exactement ce qu'il me fallait!
0
Rejoignez-nous