Java 将对象写入文件

Java 将对象写入文件,java,file,serialization,binary-data,Java,File,Serialization,Binary Data,我需要将整个对象写入一个文件,并随时检索。假设我想编写一个类“Student”的对象,该类具有诸如成绩、姓名、卷等属性。。当我以后需要访问和操作属性时。你能告诉我一种实现它的方法吗?试试。最简单的方法就是简单地实现Java的可序列化接口: 然后,您可以使用readObject/writeObject方法进行读/写操作。完成所需操作的最简单方法是 基本上,您向学生类添加了一个接口,可序列化,这将允许您将该类的对象传递给对象输出流。您可以使用此流将这些学生写入磁盘上的文件。稍后,可以通过要再次修改的

我需要将整个对象写入一个文件,并随时检索。假设我想编写一个类“Student”的对象,该类具有诸如成绩、姓名、卷等属性。。当我以后需要访问和操作属性时。你能告诉我一种实现它的方法吗?

试试。

最简单的方法就是简单地实现Java的可序列化接口:


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

完成所需操作的最简单方法是


基本上,您向
学生
类添加了一个接口,
可序列化
,这将允许您将该类的对象传递给
对象输出流
。您可以使用此流将这些学生写入磁盘上的文件。稍后,可以通过要再次修改的
ObjectInputStream读入它们。

请查看。

使用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();

就像这样。

如果您有简单的JavaBeans,那么可以使用java.beans.xmlcodector/xmldecorder


还有一种方法是使用JAXB。

这些方法应该对您有所帮助,您的学生类必须实现serilizable, 像这样使用它:

学生s1=新学生(); objectToFile(“test.ser”,s1); 学生s2=文件对象(“test.ser”)

 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();
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());
        }
    }
}