Exploiter fichier TXT en java
Stevendep
Messages postés
7
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,
Alors voilà, je suis en BTS SIO en alternance et mon entreprise me demande donc quelques exos pour le moment, là je dois avec un programme JAVA récupérer ces infos :
1;La Défense - Grande Arche;Esplanade de La Défense;Pont de Neuilly;Les Sablons;Porte Maillot;Argentine;Charles de Gaulle - Étoile;George V;Franklin D. Roosevelt;Champs-Élysées - Clemenceau;Concorde;Tuileries;Palais Royal - Musée du Louvre;Louvre - Rivoli;Châtelet;Hôtel de Ville;Saint-Paul;Bastille;Gare de Lyon;Reuilly - Diderot;Nation;Porte de Vincennes;Saint-Mandé;Bérault;Château de Vincennes;
2;Porte Dauphine;Victor Hugo;Charles de Gaulle - Étoile;Ternes;Courcelles;Monceau;Villiers;Rome;Place de Clichy;Blanche;Pigalle;Anvers;Barbès - Rochechouart;La Chapelle;Stalingrad;Jaurès;Colonnel Fabien;Belleville;Couronnes;Ménilmontant;Père Lachaise;Philippe Auguste;Alexandre Dumas;Avron;Nation;
.
.
.
Et ce jusqu'à la ligne 8 du métro. Ce que dois faire, récupéré le numéro de la ligne, puis le nom des stations, et ainsi leurs donner un ordre, "La Défense" station n°1 de la ligne 1, "Esplanade" Station n°2, et ce pour chaque station des 8 lignes, le but étant de créer un fichier par station/ligne pour créer une sorte de base de donnée, le "formulaire" est déjà créé, il s'agit donc de remplir automatiquement les champs, et d'enregistrer juste en exécutant la fonction.
J'utilise ce code pour lire mon fichier TXT :
try {
BufferedReader lecteurDeFlux = new BufferedReader(
new FileReader("C:/Users/Développement/Desktop/ListeStationsMetro.txt"));
try {
String ligneEnCours = "";
while( (ligneEnCours = lecteurDeFlux.readLine()) != null ) {
System.out.println(ligneEnCours);
}
} finally {
lecteurDeFlux.close();
}
} catch (IOException ex) {
ex.printStackTrace();
}
Qui fonctionne tout à fait correctement. J'ai aussi compris que je devais utiliser une fonction avec un split pour couper à chaque ";" mais en dehors de ça je ne trouve plus rien, nulle part, soit c'est parce que j'arrive pas à chercher soit c'est parce que personne n'a encore demandé ça ....
Je vous remercie par avance je suis complètement perdu avec en prime un mal de crâne à force de fouiller partout !
Alors voilà, je suis en BTS SIO en alternance et mon entreprise me demande donc quelques exos pour le moment, là je dois avec un programme JAVA récupérer ces infos :
1;La Défense - Grande Arche;Esplanade de La Défense;Pont de Neuilly;Les Sablons;Porte Maillot;Argentine;Charles de Gaulle - Étoile;George V;Franklin D. Roosevelt;Champs-Élysées - Clemenceau;Concorde;Tuileries;Palais Royal - Musée du Louvre;Louvre - Rivoli;Châtelet;Hôtel de Ville;Saint-Paul;Bastille;Gare de Lyon;Reuilly - Diderot;Nation;Porte de Vincennes;Saint-Mandé;Bérault;Château de Vincennes;
2;Porte Dauphine;Victor Hugo;Charles de Gaulle - Étoile;Ternes;Courcelles;Monceau;Villiers;Rome;Place de Clichy;Blanche;Pigalle;Anvers;Barbès - Rochechouart;La Chapelle;Stalingrad;Jaurès;Colonnel Fabien;Belleville;Couronnes;Ménilmontant;Père Lachaise;Philippe Auguste;Alexandre Dumas;Avron;Nation;
.
.
.
Et ce jusqu'à la ligne 8 du métro. Ce que dois faire, récupéré le numéro de la ligne, puis le nom des stations, et ainsi leurs donner un ordre, "La Défense" station n°1 de la ligne 1, "Esplanade" Station n°2, et ce pour chaque station des 8 lignes, le but étant de créer un fichier par station/ligne pour créer une sorte de base de donnée, le "formulaire" est déjà créé, il s'agit donc de remplir automatiquement les champs, et d'enregistrer juste en exécutant la fonction.
J'utilise ce code pour lire mon fichier TXT :
try {
BufferedReader lecteurDeFlux = new BufferedReader(
new FileReader("C:/Users/Développement/Desktop/ListeStationsMetro.txt"));
try {
String ligneEnCours = "";
while( (ligneEnCours = lecteurDeFlux.readLine()) != null ) {
System.out.println(ligneEnCours);
}
} finally {
lecteurDeFlux.close();
}
} catch (IOException ex) {
ex.printStackTrace();
}
Qui fonctionne tout à fait correctement. J'ai aussi compris que je devais utiliser une fonction avec un split pour couper à chaque ";" mais en dehors de ça je ne trouve plus rien, nulle part, soit c'est parce que j'arrive pas à chercher soit c'est parce que personne n'a encore demandé ça ....
Je vous remercie par avance je suis complètement perdu avec en prime un mal de crâne à force de fouiller partout !
A voir également:
- Exploiter fichier TXT en java
- Fichier bin - Guide
- Waptrick java football - Télécharger - Jeux vidéo
- Jeux java itel - Télécharger - Jeux vidéo
- Fichier epub - Guide
- Fichier rar - Guide
3 réponses
Bonjour,
Il faudrait expliciter un peu mieux ce "formulaire", et indiquer le but final de récupérer ces infos.
Le formulaire, il est en quoi? En Java? Etc, etc ...
Il faudrait expliciter un peu mieux ce "formulaire", et indiquer le but final de récupérer ces infos.
Le formulaire, il est en quoi? En Java? Etc, etc ...
Bonjour,
Ton fichier comporte des ";" entre chaque mot-clé ?
Si tel est le cas, chaque ligne de ton fichier correspond au numéro de la ligne et toute les stations de celle-ci le tout séparé par un point virgule ?
Si c'est cela, j'interpréterai ton fichier comme un fichier csv et non pas un txt.
De ce fait ton traitement java se fera sur un fichier de type csv ce qui d'autant plus facile à gérer pour ton cas.
Essaie donc d'explorer la piste du csv.
Ton fichier comporte des ";" entre chaque mot-clé ?
Si tel est le cas, chaque ligne de ton fichier correspond au numéro de la ligne et toute les stations de celle-ci le tout séparé par un point virgule ?
Si c'est cela, j'interpréterai ton fichier comme un fichier csv et non pas un txt.
De ce fait ton traitement java se fera sur un fichier de type csv ce qui d'autant plus facile à gérer pour ton cas.
Essaie donc d'explorer la piste du csv.
Oui, entre chaque nom de station et le numéro de la ligne il y a un ";".
Et la difficulté de la chose est que je dois le faire avec le TXT, quand il m'en a parlé mon tuteur ça avait l'air simple mais comme je ne connais rien au Java c'est vachement tendu ! Car je connais aucune fonctions, je sais pas vraiment comment toutes les utiliser ...
Et la difficulté de la chose est que je dois le faire avec le TXT, quand il m'en a parlé mon tuteur ça avait l'air simple mais comme je ne connais rien au Java c'est vachement tendu ! Car je connais aucune fonctions, je sais pas vraiment comment toutes les utiliser ...
Si ton fichier est comme ceci :
1;La Défense - Grande Arche;Esplanade de La Défense;Pont de Neuilly;....
2;.....
3;.....
Attention : uniquement des points virgules
Tu utilises la classe CSVReader et le tout est joué.
https://thierry-leriche-dessirier.developpez.com/tutoriels/java/charger-donnees-fichier-csv-5-min/
1;La Défense - Grande Arche;Esplanade de La Défense;Pont de Neuilly;....
2;.....
3;.....
Attention : uniquement des points virgules
Tu utilises la classe CSVReader et le tout est joué.
https://thierry-leriche-dessirier.developpez.com/tutoriels/java/charger-donnees-fichier-csv-5-min/
Rien ne t'empêche à partir du fichier TXT de le copier en fichier temporaire .csv et de traiter le csv puis le supprimer après.
Pour ce faire :
et là tu as ton fichier txt et ton fichier csv
Pour ce faire :
File source = new File ("C:/Users/Développement/Desktop/ListeStationsMetro.txt") File dest = new File ("C:/Users/Développement/Desktop/ListeStationsMetro.csv") source.renameTo(dest);
et là tu as ton fichier txt et ton fichier csv
"je ne trouve plus rien, nulle part, (...) je suis complètement perdu avec en prime un mal de crâne à force de fouiller partout !"
Tout est sur le site d'Oracle :
https://docs.oracle.com/javase/7/docs/api/
https://docs.oracle.com/javase/tutorial/index.html
Ce que tu veux faire est très simple, exemple :
Tout est sur le site d'Oracle :
https://docs.oracle.com/javase/7/docs/api/
https://docs.oracle.com/javase/tutorial/index.html
Ce que tu veux faire est très simple, exemple :
// Lecture du fichier LinkedList<String[]> liste = new LinkedList<String[]>(); Scanner sc = new Scanner(new File("ListeStationsMetro.txt")); while (sc.hasNextLine()) liste.add(sc.nextLine().split(";")); sc.close(); // Affichage des données for (String[] tab : liste) { System.out.println("Ligne "+tab[0]); for (int i=1; i<tab.length; i++) System.out.println("\t"+tab[i]); }
boucle 1 :
LigneMetro = 1
Station = La Défense - Grande Arche
n° = 1
boucle 2 :
LigneMetro = 1
Station = Esplanade de La Défense
n° = 2
et ainsi de suite pour toutes les stations et toutes les lignes.