ListeMot.txt文件包含336529 Line
如何捕捉特定的线条.
这是我的代码
int getNombre()
{
nbre = (int)(Math.random()*336529);
return nbre ;
}
public String FindWord () throws IOException{
String word = null;
int nbr= getNombre();
InputStreamReader reader = null;
LineNumberReader lnr = null;
reader = new InputStreamReader(new FileInputStream("../image/ListeMot.txt"));
lnr = new LineNumberReader(reader);
word = lnr.readLine(nbr);
}
Run Code Online (Sandbox Code Playgroud)
为什么我不能得到word = lnr.readLine(nbr); ??
谢谢
PS我是java新手!
要获取第 N 行,您必须读取它之前的所有行。
如果多次执行此操作,最有效的方法可能是首先将所有行加载到内存中。
private final List<String> words = new ArrayList<String>();
private final Random random = new Random();
public String randomWord() throws IOException {
if (words.isEmpty()) {
BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream("../image/ListeMot.txt")));
String line;
while ((line = br.readLine()) != null)
words.add(line);
br.close();
}
return words.get(random.nextInt(words.size()));
}
Run Code Online (Sandbox Code Playgroud)
theWord
顺便说一句:要使用的参数?