对象流的使用ObjectInputStream,ObjectOutputStream

本文介绍了Java中的对象流,包括对象序列化和反序列化机制。对象流允许将Java对象转换为平台无关的二进制流,便于存储和传输。通过ObjectOutputStream进行序列化,ObjectInputStream进行反序列化。示例中展示了如何对自定义的Person类进行序列化和反序列化操作,强调类及其内部引用的属性都需要实现Serializable接口。
摘要由CSDN通过智能技术生成

对象流的使用(ObjectInputStream,ObjectOutputStream

1、对象流的理解

①作用:用于存储和读取基本数据类型或对象的处理流,可以把java对象写入到数据源,也能把对象从数据源还原出来

*②对象序列机制:允许把内存中的Java对象转换成平台无关的二进制流,从而允许把这种二进制流持久地保存在磁盘上,或通过网络将这种二进制流传输到另一个网络节点。//当其它程序获取了这种二进制流,就可以恢复成原来的Java对象(面试可能会问)
(简而言之:对象–>二进制流 永久存储 )

以下是代码展示,其中ObjectOutputStream是序列化过程,ObjectInputStream是反序列化过程。

public class ObjectInputOutputStreamTest {
   
    /*
    序列化过程:将内存中的java对象保存在磁盘中或通过网络传输出去
    使用ObjectOutputStream实现
     */
    @Test
    public void testObjectOutputStream(){
   
        ObjectOutputStream oos = null;
        try {
   
        	//dat文件,可以以多种方式打开(如.txt)
            oos = new ObjectOutputStream(new FileOutputStream("object.dat"));

            oos.writeObject(new String("hello!"));
            //每一次进行存储操作,必须要进行flush操作
            oos.flush();//刷新操作
            
        } catch (IOException e) {
   
            e.printStackTrace();
        } finally {
   
            if (oos!=null) {
   
                try {
   
                    oos.close();
                } catch (IOException e) {
   
                    e.printStackTrace();
                }
            }
        }

    }
    /*
    反序列化:将磁盘文件中的对象还原为内存层面的一个java对象

     */
    @Test
    public void testObjectInputStream(){
   
        ObjectInputStream  ois=null;
        try {
   
        	//读取哪个文件(文件要存在)
            ois = 
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值