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

问题描述:

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

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

是否有任何简单的方法来选择一个随机线?

+1

你会如何在这里定义“随机行”? – 2012-03-26 11:06:03

+2

在这里看看:http://*.com/questions/2218005/how-to-get-a-random-line-of-a-text-file-in-java – giorashc 2012-03-26 11:06:19

通过Random生成随机数。通过这个数字你可以读取文件中的行。你需要把一些验证,如已经阅读或不读取的线等

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

如果你想要的代码,我可以提供一些让你开始,但这应该是相当简单的实现。

如说,你可以使用随机生成一个号码,
但阅读它的索引的新线搜索“\ n”新行字符
再求(随机)到该位置和readline()从那。

+0

只使用随机甚至可以让你阅读一条线的中间。 – 2012-03-26 11:22:46

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. 此功能对第一行非常偏见。 (这可以是固定的,考虑一下)
+0

如何提高它更正义?你有什么好主意吗? – Jaskey 2014-07-18 17:26:50