Как прочитать случайную строку из файла в Java - PullRequest
1 голос
/ 26 марта 2012

Я создал программу, которая читает строку из текстового файла.теперь мне нужно, чтобы он читал случайную строку при каждом запуске программы.Это часть моего текущего кода:

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

Есть ли простой способ выбрать случайную строку?

Ответы [ 4 ]

2 голосов
/ 08 ноября 2013
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 голосов
/ 26 марта 2012

Я предлагаю вам 1. сначала получить общее количество строк в файле.Затем 2. получить случайное число в пределах этой суммы.Затем 3. пропустите файл до точки, указанной случайным числом.Затем 4. прочитайте строку файла.

Если вам нужен код, я могу предоставить несколько, чтобы вы начали, но это должно быть довольно просто реализовать.

0 голосов
/ 26 марта 2012

как сказано, вы можете использовать random для генерации числа,
, но чтобы прочитать новую строку, найдите ее индекс для символа новой строки "\ n"
, а затем выполните поиск (RANDOM) в этом месте и readLine () из этого.

0 голосов
/ 26 марта 2012

генерирует случайное число через Случайное .По этому номеру вы можете прочитать строку из файла.Вам нужно поставить некоторую проверку, например, эту строку уже прочитали или нет и т. Д.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...