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.