2015-05-26 3 views
0

Очень новая для Java (всего несколько дней в процессе обучения) Я ищу случайную программу кавычек. У меня есть кавычки в отдельных строках в файле quotes.txt. То, что мне нужно, это захватить случайную строку и распечатать ее.Как захватить случайную строку из текстового файла и распечатать строку

Я полагаю, что шаги сначала определяют количество строк в файле, а затем генерируют случайное число между 0 и числом строк. Затем перейдите к этой строке в файле и распечатайте ее.

Я просто понятия не имею, как даже начать работу (опять же, простите, очень новый для Java). Буду признателен за любую оказанную помощь.

+3

[см это] (http://stackoverflow.com/questions/2218005/how-to-get-a-random-line-of-a-text-file-in-java) – SerCrAsH

+0

Использование базы данных может сделать это проще – ControlAltDel

+1

@ControlAltDel Пожалуйста, объясните. Не знаю, как это могло бы сделать это проще. Звучит бесполезно сложно. – tnw

ответ

1

Краткая информация. Примечание. Я не тестировал этот код. Просто поместите его очень быстро ... И этого должно быть достаточно только для небольших файлов. Если вам нужно обрабатывать большие объемы данных, я бы предложил просто прочитать файл в интересующей строке (на основе случайного) и обработать только эту строку. Кроме того, другой ЛИЭС может помочь именно с этой проблемой (например, Apache Commons: FileUtils.readLines (файл) .get (indexNumber))

FileInputStream fs= new FileInputStream("quotes.txt"); 
BufferedReader br = new BufferedReader(new InputStreamReader(fs)); 
ArrayList<String> array = new ArrayList<>(); 
String line; 
while((line = br.readLine()) != null) 
    array.add(line); 
// variable so that it is not re-seeded every call. 
Random rand = new Random(); 

// nextInt is exclusive. Should be good with output for array. 
int randomIndex = rand.nextInt(array.size()); 

// Print your random quote... 
System.out.println(array.get(randomIndex)); 
+0

Большое спасибо! – quibblify

2

Что бы я сделал, это создать ArrayList и добавить туда строки. Получите случайное число между 0 и (размером ArrayList - 1) и получите значение информации, хранящейся в этом индексе. Я оставлю код для вас, чтобы попытаться выяснить, однако я помогу, когда вы разместите свой код, который вы уже написали.

0
  1. Прочтите файл в List или array. A Scanner или BufferedReader может выполнить это.
  2. Используйте класс Random для генерации случайного числа между 0 (включительно) и размером массива/List (exclusive).
  3. Используйте результат из (2) для доступа к индексу этого элемента в массиве/списке из (1).
Смежные вопросы