gpt4 book ai didi

java - 如何使用 Android Studio 2.1.3 从 Android 中的文本文件中获取随机行?

转载 作者:行者123 更新时间:2023-11-30 10:40:10 27 4
gpt4 key购买 nike

我有一个包含 500 行的文本文件。我将此文本文件放在名为“words.txt”的 app/src/main/assets 文件夹中。在此文件中,每一行都用换行符分隔。现在我需要从这个文本文件中获取随机行。在发布之前,我访问了以下问题。

How to load random line from text file in android?

InputStreamReader and reading random lines from .txt file

How to grab a random line from a text file and print the line [duplicate]

How to get a random line of a text file in Java?

Reading a random line from text file in android

我已经从上面的链接以及 this 构建了我的代码一。我不知道存在一些名为行号阅读器的类。

这是我的代码:

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();
}
}

现在这段代码可以工作,但总是给出第一行。生成随机数,但 lnr (LineNumberReader) 始终读取第一行。为什么?

This is for learning purpose. For current case i know the length of file (or total no of lines) are 500.

最佳答案

Now this code works but always gives the first line. The random numberis generated but the lnr (LineNumberReader) reads first line always.Why?

看到这个 LineNumberReader

但是请注意,setLineNumber(int) 实际上并没有改变流中的当前位置;它只会更改 getLineNumber() 返回的值。

这就是它总是读取第一行的原因。

关于java - 如何使用 Android Studio 2.1.3 从 Android 中的文本文件中获取随机行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39033090/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com