序列化流的使用

本文介绍了Java中对象的序列化与反序列化过程,包括如何将对象转换为流以便存储或在网络中传输,以及如何从流中恢复对象。通过示例展示了序列化的基本用法,并解释了序列化的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

序列化流

 

序列化流:把对象按照流一样的方式存入文本文件或者在网络中传输。对象 – 流

ObjectOutputStream

反序列化流:把文本文件中的流对象数据或者网络中的流对象还原成对象。流数据– 对象

ObjectInputStream

序列化操作问题

为什么要实现序列化?

如何实现序列化?

序列化数据后,再次修改类文件,读取数据会出问题,如何解决呢?

使用transient关键字声明不需要序列化的成员变量

序列化的作用:

将对象写到文件

在网络中传输

 

例子1:

import java.io.FileInputStream;

import java.io.FileNotFoundException;

import java.io.FileOutputStream;

import java.io.IOException;

import java.io.ObjectInputStream;

import java.io.ObjectOutputStream;

 

public classObjectStreamDemo {

 

   public static void main(String[] args) throws IOException,ClassNotFoundException {

      // TODO Auto-generated method stub

 

      //序列化数据其实就是把对象写到文本文件中

      write();

      //反序列化

      read();

   }

 

   private static void read() throws IOException,IOException, ClassNotFoundException {

      // TODO Auto-generated method stub

     

      //创建反序列化对象

      ObjectInputStreamois = newObjectInputStream(new FileInputStream("a.txt"));

     

      //还原对象

      Objectobj = ois.readObject();

     

      //释放资源

      ois.close();

     

      //输出对象

      System.out.println(obj);

   }

 

   private static void write() throws  IOException {

      // TODO Auto-generated method stub

     

      //创建序列化对象

      ObjectOutputStreamoos = newObjectOutputStream(new FileOutputStream("a.txt"));

     

      //创建对象

      Personp= newPerson("林青霞",27);

     

      //public final void writeObject(Object obj)

      oos.writeObject(p);

     

      //释放资源

      oos.close();

   }

 

}

运行结果:

         Person [name=林青霞, ag=27]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值