Partage
  • Partager sur Facebook
  • Partager sur Twitter

afficher des mots aléatoirement d'un fichier.txt

en utilisant NetBeans

Sujet résolu
21 mars 2021 à 16:46:37

bonjour à tous , j'ai un fichier.txt qui contient plusieurs lignes ,chaque lignes correspond a un seul mot .J'arrive a lire le contenu de mon fichier mais il affiche qu'un seul mot à chaque fois. Ce que j'essaye de faire est de lire aléatoirement le contenus en affichant un seul mot . il y'a une méthode possible ? voici au dessous mon code :

try {
          RandomAccessFile monFichier = new RandomAccessFile("text.txt", "rw");
           monFichier.readLine();
         String resultat = monFichier.re;

         String resultat = monFichier.readLine();
          jTextField1.setText(resultat);
} catch (Exception e) {
               e.printStackTrace(); }
}
 


et merci d'avance 🙂 .

  • Partager sur Facebook
  • Partager sur Twitter
21 mars 2021 à 22:13:15

Bonjour,

tu peux appeler la méthode seek afin de placer ton curseur aléatoirement dans le fichier puis la méthode readLine().

  • Partager sur Facebook
  • Partager sur Twitter
21 mars 2021 à 22:33:22

Merci pour votre réponse :) 

c'est si possible de me expliquer d'une autre façon  et merci infiniment  . 

  • Partager sur Facebook
  • Partager sur Twitter
21 mars 2021 à 22:54:08

Qu'entends-tu par expliquer d'une autre façon ? Je ne peux pas faire plus simple là.

Tu as essayé de lire la javadoc de la méthode seek (si problème avec l'anglais, je peux expliquer).

As-tu essayé d'implémenter un petit programme avec la méthode seek afin de la tester et comprendre son fonctionnement ?

  • Partager sur Facebook
  • Partager sur Twitter
21 mars 2021 à 23:23:58

Tu peux générer un nombre aléatoire, placer ton curseur à cet endroit (cf le message de rybla) et le tour est joué normalement. ;)

Tu peux aussi aller voir ici.

-
Edité par Niiack 21 mars 2021 à 23:26:14

  • Partager sur Facebook
  • Partager sur Twitter
« L'ordre mon cul, la liberté m'habite ! »
22 mars 2021 à 7:30:55

Bonjour 

Merci infiniment de vos réponses 

j'ai essayée d'appeler  la méthode Seek () dans mon code mais rien affiche :

   try {
          RandomAccessFile monFichier = new RandomAccessFile("texte.txt", "rw");
             monFichier.seek(0); 
             int mot = (int) monFichier.length();
             for (int i=0 ; i< mot; i++) 
  monFichier.readLine();
 String resultat = monFichier.readLine();
          jTextField1.setText(resultat);
} catch (Exception e) {
               e.printStackTrace(); 
    }

j'ai essayé aussi avec une autre code mais aussi même problème 

voici le deuxième 


code : 

String fileName="text.txt";
   ArrayList<String> ar = new ArrayList<>();
                 try
      { 
  
    List=(ArrayList<String>)stream.collect(Collectors.toList());
           
    int arraySize = ar.size();

    Random r = new Random();
      String random_line = ar.get(r.nextInt(ar.size()));
       int random1=r.nextInt(arraySize);
       jTextField1.setText(getString(random1));
      }catch (Exception e) {;}


merci merci beaucoup de m'aider à mon problème . 

  • Partager sur Facebook
  • Partager sur Twitter
22 mars 2021 à 8:20:29

Concernant le premier code il y a une erreur d'utilisation de la méthode seek et de la méthode length. La métode length ne retourne la taille du fichier et non pas le nombre de ligne.

Tu dois avoir un algorithme:

  • générer un nombre aléatoire entre 0 et la taille du fichier.
  • appeler la méthode seek avec ce nombre aléatoire.
  • appeler la méthode readLine().

Pour le deuxième algorithme, si tu pouvais faire un effort de donner un code qui compile... Là nous avons 2 erreurs sur la même ligne.

  • Partager sur Facebook
  • Partager sur Twitter
22 mars 2021 à 16:39:56

Merci merci  beaucoup j'ai réussi à afficher les mots aléatoirement :) :)
  • Partager sur Facebook
  • Partager sur Twitter