Произвольное чтение текстового файла на Java

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

вопрос

вариант a

вариант b

вариант c

вариант d

ответ

У меня нет проблем с прочтением этого пути:

public class rar{
public static String[] q=new String[50];
public static String[] a=new String[50];
public static String[] b=new String[50];
public static String[] c=new String[50];
public static String[] d=new String[50];
public static char[] ans=new char[50];
public static Scanner sr= new Scanner(System.in);


public static void main(String args[]){
int score=0;
try {
             FileReader fr;
      fr = new FileReader (new File("F:\\questions.txt"));
      BufferedReader br = new BufferedReader (fr);
int ar=0;
      for(ar=0;ar<2;ar++){
      q[ar]=br.readLine();
      a[ar]=br.readLine();
      b[ar]=br.readLine();
      c[ar]=br.readLine();
      d[ar]=br.readLine();
    String tempo=br.readLine();
    ans[ar]=tempo.charAt(0);






        System.out.println(q[ar]);
        System.out.println(a[ar]);
        System.out.println(b[ar]);
        System.out.println(c[ar]);
        System.out.println(d[ar]);
        System.out.println("Answer: ");
        String strans=sr.nextLine();
char y=strans.charAt(0);
if(y==ans[ar]){
    System.out.println("check!");
score++;
System.out.println("Score:" + score);
}else{
System.out.println("Wrong!");
}

      }
      br.close();
    } catch (Exception e) { e.printStackTrace();}


}




}

код выше предсказуем. Цикл for просто увеличивается. И он отображает вопросы по порядку.

Я хочу иметь возможность рандомизировать текстовый файл, сохраняя при этом ту же структуру. (q, a, b, c, d, ans).

Я хочу иметь возможность рандомизировать текстовый файл, сохраняя при этом ту же структуру. (q, a, b, c, d, ans).

Я хочу иметь возможность рандомизировать текстовый файл, сохраняя при этом ту же структуру. (q, a, b, c, d, ans). Но когда я пытаюсь сделать это:

int ran= random(1,25);
   System.out.println(q[ran]);
        System.out.println(a[ran]);
        System.out.println(b[ran]);
        System.out.println(c[ran]);
        System.out.println(d[ran]);
        System.out.println("Answer: ");
        String strans=sr.nextLine();
char y=strans.charAt(0);
if(y==ans[ran]){
    System.out.println("check!");
score++;
System.out.println("Score:" + score);
}else{
System.out.println("Wrong!");
}

И вот метод, который я использую для рандомизации:

public static int random(int min, int max){
    int xx;
    xx= (int) ( Math.random() * (max-min + 1))+ min;
    return xx;
    }

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

Вы видите что-нибудь еще не так с моей программой?

6
задан Bill the Lizard 19 September 2012 в 12:32
поделиться