2 votes

Comment obtenir une ligne aléatoire d'un fichier texte dans Android en utilisant Android Studio 2.1.3 ?

J'ai un fichier texte de 500 lignes. J'ai placé ce fichier texte dans le dossier app/src/main/assets avec le nom "words.txt". Dans ce fichier, chaque ligne est séparée par un saut de ligne. J'ai maintenant besoin d'obtenir une ligne aléatoire de ce fichier texte. J'ai consulté les questions suivantes avant de poster ce message.

Comment charger une ligne aléatoire à partir d'un fichier texte dans Android ?

InputStreamReader et lecture de lignes aléatoires dans un fichier .txt

Comment saisir une ligne aléatoire dans un fichier texte et l'imprimer [duplicate].

Comment obtenir une ligne aléatoire d'un fichier texte en Java ?

Lire une ligne aléatoire dans un fichier texte sous Android

J'ai construit mon code à partir des liens ci-dessus ainsi que de ce un. Je ne savais pas qu'il existait une classe appelée lecteur de numéro de ligne.

Voici mon code :

try {
        //Initialize assetmanager class
        AssetManager am = this.getAssets();
        //open file using asset manager
        InputStream is = am.open("words.txt");
        //read buffer manager
        BufferedReader reader = new BufferedReader(new InputStreamReader(is));
        //Important: use of LineNumberReader Class
        LineNumberReader lnr = new LineNumberReader(reader);
        Random r = new Random();
        int n = r.nextInt(500)+1;
        lnr.setLineNumber(n);
        mWord = lnr.readLine();
        Log.d("MyLog","The letter is "+mWord);
    } catch (FileNotFoundException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    }
}

Maintenant ce code fonctionne mais donne toujours la première ligne. Le numéro aléatoire est généré mais le lnr (LineNumberReader) lit toujours la première ligne. Pourquoi ?

Ceci est pour l'apprentissage. Dans le cas présent, je sais que la longueur du fichier (ou le nombre total de lignes) est de 500.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X