读取/写入二进制文件

编程人123

现在,我必须将对象数组读/写到二进制文件。我已经准备好了代码,但是由于某种原因,我遇到了写错误(我在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);
     }



}
}
马丁·S

您的Trivia类必须实现Serializable接口,以允许使用编写接口ObjectInputStream

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类常见问题

Python:从stdin读取和写入Powershell中的二进制文件

来自分类Dev

从二进制文件读取

来自分类Dev

在Win32上从stdin读取二进制数据,并将其写入文件

来自分类Dev

用python创建查找表,写入可在C程序中读取的二进制文件

来自分类Dev

从二进制文件读取char *

来自分类Dev

写入二进制文件块

来自分类Dev

将从数据库读取的数据写入二进制文件

来自分类Dev

将Float数组写入二进制文件并快速读取

来自分类Dev

写入二进制文件

来自分类Dev

大块读取二进制文件

来自分类Dev

从MongoDB读取二进制文件

来自分类Dev

从二进制文件读取

来自分类Dev

在Clisp中以二进制模式写入/读取文件

来自分类Dev

读取二进制文件c

来自分类Dev

读取大型二进制文件

来自分类Dev

写入/读取二进制/文本文件

来自分类Dev

二进制文件写入后读取负整数

来自分类Dev

写入和读取Java二进制文件

来自分类Dev

写入二进制文件的末尾

来自分类Dev

写入二进制文件块

来自分类Dev

二进制文件读取-写入不起作用

来自分类Dev

读取已发布的二进制文件并写入新的二进制文件

来自分类Dev

写入二进制文件

来自分类Dev

分批读取二进制文件

来自分类Dev

写入二进制文件python

来自分类Dev

从二进制文件中读取

来自分类Dev

从txt文件中读取字符、编码并写入二进制文件

来自分类Dev

从二进制写入和读取

来自分类Dev

读取整数的二进制文件