Récupération et stockage données d'un fichier txt
matthiasdu81
Messages postés
1
Date d'inscription
Statut
Membre
Dernière intervention
-
KX Messages postés 16761 Date d'inscription Statut Modérateur Dernière intervention -
KX Messages postés 16761 Date d'inscription Statut Modérateur Dernière intervention -
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;
}
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:
- Récupération et stockage données d'un fichier txt
- Fichier bin - Guide
- Comment réduire la taille d'un fichier - Guide
- Comment ouvrir un fichier epub ? - Guide
- Fichier rar - Guide
- Espace de stockage gmail plein - Guide
1 réponse
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à :
Alors ta méthode PosList va faire ces tests là (ce qui n'est pas du tout ce que tu veux)
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
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