簡體   English   中英

如何從Java中的文件讀取隨機行

[英]How to read a random line from a file in java

我編寫了一個程序,可以從文本文件中讀取一行。 我現在需要每次運行程序時使其讀取一條隨機行。 這是我當前代碼的一部分:

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

有沒有簡單的方法來選擇隨機線?

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.首先獲取文件中的總行數。 然后2.在該總數中獲得一個隨機數。 然后3.跳過文件到隨機數指示的位置。 然后4.讀取文件行。

如果您想要代碼,我可以提供一些入門的方法,但是實現起來應該很簡單。

如前所述,您可以使用隨機數生成數字,
但要讀取換行符以查找它的“ \\ n”換行符索引
然后搜索(RANDOM)到該位置並從該位置讀取Li​​ne()。

通過Random生成隨機數。 通過該數字,您可以從文件中讀取行。 您需要進行一些驗證,例如該行是否已讀取等。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM