[JAVA] Recuperer information d'un fichier
Fermé
tababa
-
16 avril 2016 à 12:23
KX Messages postés 16733 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 janvier 2024 - 16 avril 2016 à 16:53
KX Messages postés 16733 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 janvier 2024 - 16 avril 2016 à 16:53
A voir également:
- [JAVA] Recuperer information d'un fichier
- Fichier rar - Guide
- Comment récupérer un compte facebook piraté - Guide
- Fichier host - Guide
- Comment recuperer un message supprimé sur whatsapp - Guide
- Fichier iso - Guide
2 réponses
KX
Messages postés
16733
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
31 janvier 2024
3 015
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
16733
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
31 janvier 2024
3 015
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));