当前位置: 移动技术网 > IT编程>开发语言>Java > Java将对象写入文件读出_序列化与反序列化的实例

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

2019年07月19日  | 移动技术网IT编程  | 我要评论

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

写入:

file 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,它只是一个标识接口,本身没有任何成员,只是用来标识说明当前的实现类的对象可以被序列化。

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

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

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

以上这篇java将对象写入文件读出_序列化与反序列化的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持移动技术网。

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网