[JAVA] Recuperer information d'un fichier
Fermé
tababa
-
16 avril 2016 à 12:23
KX Messages postés 16753 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 25 novembre 2024 - 16 avril 2016 à 16:53
KX Messages postés 16753 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 25 novembre 2024 - 16 avril 2016 à 16:53
A voir également:
- [JAVA] Recuperer information d'un fichier
- Fichier rar - Guide
- Waptrick java football - Télécharger - Jeux vidéo
- Comment ouvrir un fichier epub ? - Guide
- Comment réduire la taille d'un fichier - Guide
- Jeux java itel football - Télécharger - Jeux vidéo
2 réponses
KX
Messages postés
16753
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
25 novembre 2024
3 019
16 avril 2016 à 15:35
16 avril 2016 à 15:35
Bonjour,
Le plus efficace est de stocker tout ton dictionnaire en mémoire (dans un tableau ou une liste par exemple), tu lis donc qu'une seule fois le fichier (au démarrage du programme) et après tu accèdes à tout les éléments que tu veux directement dans la mémoire.
Exemple :
Le plus efficace est de stocker tout ton dictionnaire en mémoire (dans un tableau ou une liste par exemple), tu lis donc qu'une seule fois le fichier (au démarrage du programme) et après tu accèdes à tout les éléments que tu veux directement dans la mémoire.
Exemple :
import java.io.IOException; import java.nio.file.Files; import java.nio.file.Paths; import java.util.List; public class Test { public static void main(String[] args) throws IOException { List<String> dico = Files.readAllLines(Paths.get("C:/dico.txt")); System.out.println(dico.get(12)); System.out.println(dico.get(34)); System.out.println(dico.get(56)); } }
j'y avais penser aussi en stockant tous dans un tableau puis générant un nombre aléatoire et récupérant le mot à l'indice de ce nombre mais le fait est qu'il y a plus de 22 000 mots et j'ai peur que ça lag :s
ps : pourrait tu détailler ton code avec des "\\" car je suis un débutant en java et je ne comprend pas le code que tu as ecrit
ps : pourrait tu détailler ton code avec des "\\" car je suis un débutant en java et je ne comprend pas le code que tu as ecrit
KX
Messages postés
16753
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
25 novembre 2024
3 019
16 avril 2016 à 16:53
16 avril 2016 à 16:53
22 000 mots, avec disons 8 lettres par mots (en moyenne), ça fait 176 000 lettres, chacune faisant 1 octet (ou 2 pour les lettres avec accents), soit moins de 200 Ko...
Ton application ne va pas ramer pour 200 Ko en mémoire !
En plus l'accès à la mémoire vive est plus rapide que l'accès au disque dur.
Ce qui pourrait ralentir ton programme c'est d'aller lire ton fichier, d'où l'intérêt de ne le faire qu'une seule fois au début du programme.
Quant à détailler mon code... il n'y a que deux lignes !
Même pour un débutant il n'y a rien de compliqué !
Ton application ne va pas ramer pour 200 Ko en mémoire !
En plus l'accès à la mémoire vive est plus rapide que l'accès au disque dur.
Ce qui pourrait ralentir ton programme c'est d'aller lire ton fichier, d'où l'intérêt de ne le faire qu'une seule fois au début du programme.
Quant à détailler mon code... il n'y a que deux lignes !
Même pour un débutant il n'y a rien de compliqué !
// Je lis toutes les lignes du fichier "C:/dico.txt" // Le résultat est stocké dans la liste "dico" List<String> dico = Files.readAllLines(Paths.get("C:/dico.txt")); // J'affiche l'élément 12 de la liste "dico" // Ça correspond donc à la ligne 12 du fichier "C:/dico.txt" System.out.println(dico.get(12));