Lire fichier

Résolu
poupou014 Messages postés 7 Date d'inscription mardi 6 mai 2008 Statut Membre Dernière intervention 7 juin 2011 - 30 mai 2011 à 14:31
poupou014 Messages postés 7 Date d'inscription mardi 6 mai 2008 Statut Membre Dernière intervention 7 juin 2011 - 31 mai 2011 à 08:21
Bonjour tous le monde.
Je voudrais lire un fichier et extraire les informations qui sont dedans separees par un | ou passage a l'autre ligne. Voici un extrait du fichier:

Tent|12345|22222|06/07/11|2|false|3|0
Cabin|15432|24321|10/11/11|7|false|0|4
Caravan|14321|22421|15/12/11|3|true|0|0

Voici mon code que j'execute:

public BookingsManager(String path) throws FileNotFoundException {

Scanner scanner = new Scanner(new File(path));
scanner.useDelimiter("\\|");
while (scanner.hasNext()) { 

String bookingType = scanner.next();

String bookingID = scanner.next();

String customerID = scanner.next();

String startDate = scanner.next();

String duration = scanner.next();

String poweredSite = scanner.next();

String tent = scanner.next();

String occupancy = scanner.next();


//Booking(bookingID, customerID, startDate, duration);

System.out.println(bookingType +" "+ bookingID +" "+ customerID +" "+ startDate +" "+ duration +" "+ poweredSite +" "+ tent +" "+ occupancy);
}

}


Quand j'execute le code, il ne m'affiche pas tous mes lignes sans les separateur et j'ai des erreurs.

Je voudrais essayer de recuperer les donnees ligne par ligne pour appeler un constructeur a chaque fois (Booking...).

5 réponses

cs_Julien39 Messages postés 6414 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 29 juillet 2020 366
30 mai 2011 à 15:45
Pour séparer les différentes parties, utilises StringTokenizer :

String test = "Tent|12345|22222|06/07/11|2|false|3|0";
StringTokenizer st = new StringTokenizer(test, "|");
while(st.hasNext()){
     System.out.println(st.next());
}
3
poupou014 Messages postés 7 Date d'inscription mardi 6 mai 2008 Statut Membre Dernière intervention 7 juin 2011
31 mai 2011 à 08:21
J ai reussi a me debrouiller avec ton bout de code et en traitant ligne par ligne.

public BookingsManager(String path) throws FileNotFoundException {

Scanner scanner = new Scanner(new File(path));

while (scanner.hasNext()) { 

String ligne = scanner.nextLine();

System.out.println(ligne);

StringTokenizer st = new StringTokenizer(ligne, "|");

while(st.hasMoreTokens()){

String bookingType = st.nextToken();

String bookingID = st.nextToken();
String customerID = st.nextToken();					
String startDate = st.nextToken();
String duration = st.nextToken();

String poweredSite = st.nextToken();
String tent = st.nextToken();

String occupancy = st.nextToken();					
System.out.println(bookingType +" "+ bookingID +" "+ customerID +" "+ startDate +" "+ duration +" "+ poweredSite +" "+ tent +" "+ occupancy);

}//End While
}//End While

}
3
cs_Julien39 Messages postés 6414 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 29 juillet 2020 366
30 mai 2011 à 15:46
Et pour lire tes fichiers, ne touches pas au delimiter
0
cs_Julien39 Messages postés 6414 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 29 juillet 2020 366
30 mai 2011 à 15:46
Le delimiter est le daut de ligne, et tu en as certainement besoin
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
poupou014 Messages postés 7 Date d'inscription mardi 6 mai 2008 Statut Membre Dernière intervention 7 juin 2011
31 mai 2011 à 07:43
Merci pour tes reponses Julien.
J ai essaye ton bout de code mais ca ne marche pas
"The method hasNext() is undefined for the type StringTokenizer"
Et je voudrais essayer de lire a partir du fichier et pas d'une variable String.
0