将对象写入文件

时间:2011-02-08 17:20:20

标签: java file serialization binary-data

我需要将整个对象写入文件并随时检索。假设我想编写一个类“Student”的对象,它具有等级,名称,滚动等属性。当我想要在以后需要时访问和操作属性时。你能告诉我一个完成它的方法吗?

7 个答案:

答案 0 :(得分:4)

使用ObjectOutputStream。

 public class Student implements Serializable {

 }

 FileOutputStream fos = new FileOutputStream("Students.dat");
 ObjectOutputStream oos = new ObjectOutputStream(fos);

 Student someStudent = new Student();

 oos.writeObject(someStudent);

 oos.close();

喜欢这样。

答案 1 :(得分:1)

尝试Serialization

答案 2 :(得分:1)

您正在寻找的最简单方法是Object Serialization.

基本上,您为Student类添加了一个界面Serializable,这样您就可以将该类的对象传递给ObjectOutputStream。您可以使用此流将这些学生写入磁盘上的文件。之后,可以通过ObjectInputStream读取它们以便再次修改。

答案 3 :(得分:1)

答案 4 :(得分:1)

如果你有简单的JavaBeans,你可以使用java.beans.XMLEncoder / XMLDecoder。

另一种方法是使用JAXB。

答案 5 :(得分:0)

最简单的方法是简单地实现Java的Serializable接口:http://download.oracle.com/javase/1.4.2/docs/api/java/io/Serializable.html

public class Student implements Serializable {
}

然后,您可以使用readObject / writeObject方法进行读/写。

答案 6 :(得分:0)

这些方法应该对你有帮助,你的学生班必须实施可服用, 使用它像:

学生s1 =新学生(); objectToFile( “TEST.SER”,S1); 学生s2 = fileToObject(“test.ser”);

public static void objectToFile(String fileName, Serializable object){
    ObjectOutputStream oos = null;
    try {
        oos = new ObjectOutputStream(new BufferedOutputStream(new FileOutputStream(fileName)));
        oos.writeObject(object);
    } catch (Exception e) {
        System.out.println(e.getMessage());
    } finally{
        try {
            oos.flush();
            oos.close();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

    }
}

public static Object fileToObject(String fileName){
    ObjectInputStream ois = null;
    try {
        ois = new ObjectInputStream(new BufferedInputStream(new FileInputStream(fileName)));
        return ois.readObject();
    } catch (Exception e) {
        return null;
    } finally{
        try {
            ois.close();
        } catch (IOException e) {
            System.out.println(e.getMessage());
        }
    }
}