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