在Java中读取txt文件中的特定行

Fra*_*arp 5 java io file-io

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新手!

Pet*_*rey 3

要获取第 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顺便说一句:要使用的参数?