Bonjour,

J'aimerais lire mon fichier .txt qui contient des informations utilisateurs, le contenu de ce fichier étant de ce type:

nom1
prenom1
adresse1
...
nom2
prenom2
adresse2
...

Le but est de récupérer un utilisateur et de le retourné afin de l'afficher dans un interface graphique.
Par exemple on demande le 1er utilisateur qui se trouve dans le fichier alors on retourne le 1er ensuite on demande le 2ème on retourne le 2ème ainsi de suite.

Pour cela je mets toutes les lignes de mon fichier dans un tableau dynamique car on peut ajouter des utilisateurs donc la taille du fichier peut varier.

Voici mon code:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
 
// lecture du fichier ensuite on met toutes les données dans un tableau
    public String[] lecture(int position)
    {
        int compteur = 10; // il y a 10 lignes d'informations pour un utilisateur
        String[] donnee = new String[compteur]; //contient les données de chaque user
        String[] test = new String[compteur]; // pour tester si le code fonctionne
        ArrayList<String[]> users = new ArrayList<String[]>(); //contient les données de tous les user
 
        try {
            FileReader fr = new FileReader("file.txt");
            BufferedReader buf = new BufferedReader(fr);
 
            String ligne;
            int i = -1, k=0;
 
            while ((ligne = buf.readLine())  != null) 
            {
                i++;
                donnee[i] = ligne; // on met chaque ligne un tableau de string
 
                if(i == compteur-1)
                {
                    i = -1;
                    users.add(k, donnee); // on ajoute l'utilisateur dans l'array
                    test = users.get(k); // on verifie le 1er tableau de l'array
                    for(int i1=0; i1<test.length; i1++)
                    {           
                        System.out.println(test[i1]); //jusqu'ici tout est bon tous les utilisateurs sont dans l'array.
                    }
                    k++;
                }
            }
 
            fr.close();
 
        } catch (IOException e) {
            e.printStackTrace();
        }
        return users.get(position); // ici il renvoie toujours le dernier élément de l'array alors que je veux renvoyer l'utilisateur à la position donnée en paramètre
    }
}
Quelqu'un pourrait m'aider à comprendre pour quelle raison est ce qu'il me renvoie toujours et seulement le dernier élément de mon tableau.

Merci d'avance.