在txt中导入对象的多行数据。文件

时间:2016-12-21 19:32:42

标签: java file oop import readfile

我目前正在尝试创建一个小型测验应用程序,其中对象类将包含:

  • 问题
  • answerChoice1
  • answerChoice2
  • answerChoice3
  • correctAnswerNum

要包含此数据,我有一个txt。包含相关数据的文件。该文件的格式与上面的列表相同。

我想要做的是读取文件并从每行导入数据并转换为我的程序使用。

这与其他此类问题不同,因为我希望转换问题(字符串中会有空格),同时还在单独的行中为数组中的同一对象集导入其他对象数据。

questions (String question, String answer1, String answer2, String answer3, int correctAnswer){
    this.question = question;
    this.answer1 = answer1;
    this.answer2 = answer2;
    this.answer3 = answer3;
    this.correctAnswer = correctAnswer;
}

public String getQuestion(){
    return question;
}

public String getAnswer1(){
    return answer1;
}

public String getAnswer2(){
    return answer2;
}

public String getAnswer3(){
    return answer3;
}

public int getCorrectAnswer(){
    return correctAnswer;
}

如果需要,这是我的对象类。

1 个答案:

答案 0 :(得分:0)

您可以在班级中实现Serializable接口。这是一个接口标记,因此它不包含任何方法和字段。未实现此接口的类将不会将其任何状态序列化或反序列化。 您必须使用这些确切的签名实现特殊方法:

private void writeObject(java.io.ObjectOutputStream out) throws IOException
private void readObject(java.io.ObjectInputStream in) throws IOException, ClassNotFoundException;
private void readObjectNoData() throws ObjectStreamException;

所以,你的“writeObject()”方法将是这样的:

private void writeObject(java.io.ObjectOutputStream out) throws IOException {
    out.writeString(question);
    out.writeString(answer1);
    out.writeString(answer2);
    out.writeString(answer3);
    out.writeInt(correctAnswer);
}

你的“readObject”将是这样的:

private void writeObject(java.io.ObjectInputStream in) throws IOException,ClassNotFoundException {
        question = in.readString();
        answer1 = in.readString();
        answer2 = in.readString();
        answer3 = in.readString();
        correctAnswer = in.readInt();
    }