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:
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.
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 } }
Merci d'avance.
Partager