Java将对象写入文件读出_序列化与反序列化的实例

网友投稿 299 2023-04-19


Java将对象写入文件读出_序列化与反序列化的实例

java类中对象的序列化工作是通过ObjectOutputStream和ObjectInputStream来完成的。

写入:

Fihttp://le aFile=new File("e:\\c.txt");

Stu a=new Stu(1, "aa", "1");

FileOutputStream fileOutputStream=null;

try {

fileOutputStream = new FileOutputStream(aFile);

ObjectOutputStream objectOutputStream=new ObjectOutputStream(fileOutputStream);

objectOutputStream.writeObject(a);

objectOutputStream.flush();

objectOutputStream.close();

} catch (FileNotFoundException e) {

// TODO Auto-generated catch block

e.printStackTrace();

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}finally {

if(fileOutputStream!=null)

{

try {

fileOutputStream.close();

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

}

读取:

FileInputStream fileInputStream=new FileInputStream(aFile);

ObjectInputStream objectInputStream=new ObjectInputStream(fileInputStream);

Stu s=(Stu)objectInputStream.readObject();

System.out.println(s);

注意:

对于任何需要被序列化的对象,都必须要实现接口Serializable,它只是一个标识接口,本身没有任何成员,只是用来标识说明当前的实现类的对象可以被序列化。

如果在类中的一些属性,希望在对象序列化过程中不被序列化CWXkH,使用关键字transient标注修饰就可以。当对象被序列化时,标注为transient的成员属性将会自动跳过。如果一个可序列化的对象包含某个不可序列化对象的引用,那么序列化操作会失败,会抛出NotSerializableException异常,那么将这个引用标记transient,就可以序列化了。

当一个对象被序列化时,只保存对象的非静态成员变量,不能保存任何的成员方法,静态的成员变量。

如果一个对象的成员变量是一个对象,那么这个对象的数据成员也会被http://保存还原,而且会是递归的方式。


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Java实现从jar包中读取指定文件的方法
下一篇:Java编程实现获取当前代码行行号的方法示例
相关文章

 发表评论

暂时没有评论,来抢沙发吧~