Lire fichier en java

Résolu/Fermé
nawar - 19 nov. 2011 à 16:51
KX Messages postés 16733 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 janvier 2024 - 19 nov. 2011 à 18:17
Bonjour,

je veux lire le contenu d'un fichier en java caractère par caractère
par exemple j'ai un fichier qui s'appelle fichier.txt qui contient
dans la première ligne du fichier on a
personne,10 enseignant,25 institut,35
et dans la deuxième ligne il y a
enseignant,2 institut,46
par exemple le mot personne ne se trouve pas dans la 2 eme ligne
hors que enseignant se trouve dans la 2 eme ligne
alors je calcule la distance entre ces deux élément qui ont le même nom
sqrt(25-2)
comment faire????????????
merci de m'aider



A voir également:

1 réponse

KX Messages postés 16733 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 janvier 2024 3 015
19 nov. 2011 à 18:00
Pour commencer : il faut ouvrir un flux de données sur ton fichier

Scanner in = new Scanner(new File("fichier.txt"));
Ensuite tu dois lire les données. Pour cela tu as plusieurs méthodes, en particulier la lecture ligne par ligne avec nextLine(); tu peux également faire du traitement par bloc avec next(); en utilisant la virgule comme séparateur, je te laisse regarder la documentation de Scanner
0
KX Messages postés 16733 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 janvier 2024 3 015
19 nov. 2011 à 18:17
Exemple simple pour comprendre ;

Scanner in = new Scanner(new File("fichier.txt")); // on ouvre le fichier

// Définition de l'expression régulière pour trouver chaque bloc
String pattern = "[\\w]+,[\\d]+"; // un mot, une virgule, un nombre
	
while (in.hasNext(pattern)) // tant qu'il reste au moins un bloc
	System.out.println(in.next(pattern)); // on affiche le bloc suivant

in.close(); // on ferme le fichier

Avec ton exemple ce code affichera donc :

personne,10
enseignant,25
institut,35
enseignant,2
institut,46

À toi après de voir comment te servir de ces informations pour faire ce que tu veux ;-)
0