现在,我必须将对象数组读/写到二进制文件。我已经准备好了代码,但是由于某种原因,我遇到了写错误(我在try catch中创建的错误)。任何解决此问题的解决方案,我们都表示赞赏。谢谢。
public class Trivia {
private String question;
private String answer;
private int points;
public Trivia() {
question = " ";
answer = " ";
points = 0;
}
public String getQuestion() {
return question;
}
public String getAnswer() {
return answer;
}
public int getPoints() {
return points;
}
public void setQuestion(String q) {
question = q;
}
public void setAnswer(String a) {
answer = a;
}
public void setPoints(int p) {
points = p;
}
}
import java.io.*;
import java.util.*;
public class Driver {
public static void main(String[] args) {
String fileName = "trivia.dat";
Trivia[] t = new Trivia[5];
for (int i = 0; i < 5; i++) {
t[i] = new Trivia();
}
t[0].setQuestion("How many states are in the US?");
t[0].setAnswer("50");
t[0].setPoints(1);
t[1].setQuestion("What is the capital of Michigan?");
t[1].setAnswer("Lansing");
t[1].setPoints(1);
t[2].setQuestion("How many senators come from each state?");
t[2].setAnswer("2");
t[2].setPoints(2);
t[3].setQuestion("What is the largest state?");
t[3].setAnswer("Alaska");
t[3].setPoints(2);
t[4].setQuestion("Who was the thrid president?");
t[4].setAnswer("Thomas Jefferson");
t[4].setPoints(3);
ObjectOutputStream outputStream = null;
try{
outputStream = new ObjectOutputStream(new FileOutputStream("trivia.dat"));
}catch(IOException e){
System.out.println("Could not open file");
System.exit(0);
}
try{
outputStream.writeObject(t);
outputStream.close();
}catch(IOException e){
System.out.println("Writing error");
System.exit(0);
}
ObjectInputStream inputStream = null;
try{
inputStream = new ObjectInputStream(new FileInputStream("trivia.dat"));
}catch(IOException e){
System.out.println("File not found.");
System.exit(0);
}
Trivia[] test = null;
try{
test = (Trivia[])inputStream.readObject();
}catch(Exception e){
System.out.println("Reading error");
System.exit(0);
}
}
}
您的Trivia
类必须实现Serializable
接口,以允许使用编写接口ObjectInputStream
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句