如何从java中的文件中读取随机行

时间:2012-03-26 11:03:56

标签: java file random

我制作了一个从文本文件中读取一行的程序。我现在需要在每次运行程序时使其读取随机行。这是我当前代码的一部分:

if(Score<=5){
word = scan1 .nextLine();
System.out.println(word);
}

有没有简单的方法来挑选随机线?

4 个答案:

答案 0 :(得分:2)

public String getRandomLineFromTheFile(File file)
{
    final RandomAccessFile f = new RandomAccessFile(file, "r");
    final long randomLocation = (long) (Math.random() * f.length());
    f.seek(randomLocation);
    f.readLine();
    return f.readLine();
}
  1. 与较短的线条相比,此功能偏向更长的线条。
  2. 此功能严重偏向第一行。 (这可以修复。想一想。)

答案 1 :(得分:0)

我建议你 1.首先获取文件中的总行数。然后 2.获得该总数内的随机数。然后 3.跳过文件到随机数指示的点。然后 4.读取文件的行。

如果你想要代码我可以提供一些来帮助你入门,但这应该是相当简单的实现。

答案 2 :(得分:0)

如你所说,你可以使用随机生成一个数字,
但要读取新行,请搜索“\ n”新行字符的索引 然后从那里寻找(RANDOM)到该位置和readLine()。

答案 3 :(得分:-1)

通过Random生成随机数。通过该数字,您可以从文件中读取行。你需要进行一些验证,比如已经读过的那行等等。