问题数组到文件中

时间:2018-11-29 04:56:27

标签: java arrays file

我创建了一个程序,向用户询问10个随机多项选择题。我还创建了一个问题类,该问题类可用于我的主要方法。我有10个多项选择题的数组,我需要回答这些问题并将其存储在文本文件中。该文件需要这样格式化: 问题文字 答案A 答案选项B 答案选项C 答案选项D 正确答案

我的问题类具有一个构造函数,该构造函数假定与我需要创建的文本文件相对应。

我不确定该如何开始,并希望获得一些对我有帮助的想法。

我的代码示例:

//Set question and answers.
            questions[0] = new P3A2_Harvey_4251833_Question("JVM stands for what?", "D");
            questions[0].setChoice("A. Java Variable Machine");
            questions[0].setChoice("B. Java Variable Method");
            questions[0].setChoice("C. Java Virtual Method");
            questions[0].setChoice("D. Java Virtual Machine");
            questions[1] = new P3A2_Harvey_4251833_Question("Every complete programming statement ends with what?", "A");
            questions[1].setChoice("A. Semicolon");
            questions[1].setChoice("B. Period");
            questions[1].setChoice("C. Colon");
            questions[1].setChoice("D. Question Mark");
            questions[2] = new P3A2_Harvey_4251833_Question("This type of expression can be either true or false", "C");
            questions[2].setChoice("A. Null Expression");
            questions[2].setChoice("B. Binary Expression");
            questions[2].setChoice("C. Boolean Expression");
            questions[2].setChoice("D. Method Expressions");
            for(int i = 0; i<questions.length;i++)
            {
                //Randomizing the questions in the array. 
                int n = rand.nextInt(3);
                System.out.print("Question " + (n+1)+":");
                System.out.println(questions[n].getQuestion());
                System.out.println(questions[n].getChoice());
                System.out.print("Enter your answer: "); 
                userInput = keyboard.nextLine();
                //Asking for users input reference to the question. 
                while(!userInput.equals("A")&&!userInput.equals("B")&&!userInput.equals("C")&&!userInput.equals("D"))
                {
                    System.out.println("invalid response");
                    System.out.print("Enter your answer: ");
                    userInput = keyboard.nextLine();

1 个答案:

答案 0 :(得分:0)

我认为您非常接近解决方案。这是一个建议。

成功创建Question类后,您可以为该类编写一个额外的方法,该方法将负责将问题的内容写入给定文件。像这样:

public class Question {
    //...

    public void write (PrintWriter out) {
        //TODO write your desired output
        out.println("This line will be written to whatever is given as parameter");
    }
}

然后在您的主目录中,您可以创建一个文件并将每个问题写入其中。例如,如果您有一个问题q,它将写入名为filename.txt的文件:

Question q = new Question(...);

PrintWriter writer = new PrintWriter("filename.txt");

q.write(writer); //Give the PrintWriter to the write method of Question class

writer.close();

我认为您可以自行解决如何从那里进行;-)。