Récupération et stockage données d'un fichier txt

Fermé
matthiasdu81 Messages postés 1 Date d'inscription dimanche 28 avril 2013 Statut Membre Dernière intervention 1 mai 2013 - 1 mai 2013 à 11:26
KX Messages postés 16734 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 24 avril 2024 - 1 mai 2013 à 11:59
Bonjour,

Je souhaiterais récupérer les parties d'un fichier txt et je ne comprend pas pourquoi ce code ne marche pas, sachant qu'il y a deux parties différentes des positions et des liens que je souhaiterais stocker dans deux listes différentes.

import java.io.File;
import java.util.ArrayList;
import java.util.Scanner;

public class ScannerMap {

Scanner sc;
ArrayList<String> PosList = new ArrayList<String>();
ArrayList<String> LienList = new ArrayList<String>();

public ArrayList<String> PosList(File map){

int i = 0;
sc = new Scanner(new File);

while(sc.hasNext()){
if (sc.nextLine() != "begin_nodes"){

if (sc.nextLine() == "end_nodes"){ return PosList;}

PosList.add(i,sc.nextLine());
i = i+1;

}
}

}

public ArrayList<String> LienList(File map){

int k = 0;
sc = new Scanner(new File);
while(sc.hasNext() & sc.nextLine() != "end_edges"){
if(sc.nextLine() == "begin_edges"){
while(sc.hasNext() & sc.nextLine() != "end_edges"){
if (sc.nextLine() != "begin_edges" & sc.nextLine() != "end_edges"){


LienList.add(k,sc.nextLine());
k = k+1;
}
}

}
}
return LienList;
}
A voir également:

1 réponse

KX Messages postés 16734 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 24 avril 2024 3 015
Modifié par KX le 1/05/2013 à 12:16
1) Les opérateurs == ou != comparent les références d'objets, en aucun cas leur valeur ! Il faut que tu utilises la méthode equals pour comparer tes chaînes de caractères.

2) La conjonction de valeurs booléennes se fait avec l'opérateur && pas avec l'opérateur & qui est un opérateur de calcul de bits.

3) À chaque fois que tu utilises nextLine c'est une nouvelle ligne qui est récupérée, donc plusieurs nextLine consécutifs ne concerneront jamais la même valeur.

Par exemple si ton fichier contient ces valeurs là :

ligne1 
ligne2 
ligne3

Alors ta méthode PosList va faire ces tests là (ce qui n'est pas du tout ce que tu veux)

if ("ligne1" != "begin_nodes"){ 
if ("ligne2" == "end_nodes"){ return PosList;} 
PosList.add(i,"ligne3"); 

4) N'oublies pas de fermer ton fichier quand tu as terminé son traitement.

5) Il faudrait que tu indentes correctement ton code et que tu respectes les conventions de nommage Java (les variables et les noms de méthodes commencent par une minuscule)La confiance n'exclut pas le contrôle
0