317 对象序列化流

36 篇文章 0 订阅

317 对象序列化流

(myOtherStream)

【对象序列化流】

  • 将对象保存在内存中,or在网络中传输对象。
  • 使用一个字节序列,表示一个对象,该字节序列包含:
  • 对象的类型、对象的数据、对象的属性aso
  • 字节序列写到文件后,相当于文件中持久保存一个对象的信息

(查看帮助文档:ObjectOutputStream)

模块  java.base

软件包  java.io

Class ObjectOutputStream

java.lang.Object

java.io.OutputStream

java.io.ObjectOutputStream

实现的所有接口

Closeable , DataOutput , Flushable , ObjectOutput , ObjectStreamConstants , AutoCloseable

---------------------------------------------

public class ObjectOutputStream

extends OutputStream

implements ObjectOutput, ObjectStream Constants ObjectOutputStream将Java对象的原始数据类型和图形写入OutputStream。 可以使用ObjectInputStream读取(重构)对象。 可以通过使用流的文件来完成对象的持久存储。 如果流是网络套接字流,则可以在另一个主机或另一个进程中重新构建对象。

ObjectOutputStream(OutputStream out)

构造方法

创建一个写入指定OutputStream的ObjectOutputStream。

writeObject​(Object obj)

方法

将指定的对象写入ObjectOutputStream。

---------------------------------------------

package e317;

import java.io.Serializable;

public class Student317 implements Serializable {

    private String name;

    private int age;

(无参构造方法

带参构造方法

getter and setter

无需为Serializable做方法重载

    }

}

---------------------------------------------

package e317;

import java.io.FileOutputStream;

import java.io.IOException;

import java.io.ObjectOutputStream;

public class ObjectOutputStreamDemo {

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

        ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("myOtherStream\\src\\e317\\77.txt"));

//写到这里暂停下,写一个类,下面好生成这个类的对象

        Student317 s = new Student317("MOLE", 30);

        oos.writeObject(s);

        oos.close();

//        报错了,NotSerializableException,

//        当实例需要具有Serializable接口时抛出。 序列化运行时或实例的类可以抛出此异常。 参数应该是类的名称。

//        public interface Serializable实现java.io.Serializable接口的类启用了类的可序列化。

//          警告:不受信任数据的反序列化本质上是危险的,应该避免。

//          应根据Secure Coding Guidelines for Java SE的“序列化和反序列化”部分仔细验证不受信任的数据。

//          Serialization Filtering描述了防御性使用串行过滤器的最佳实践。

//class Student317中补写:implements Serializable

//        Serializable中没有需要重写的方法,实现此接口不需要重写方法,实现此接口的类的对象可序列化、反序列化

    }

}

/*

(77.txt)

�� sr e317.Student317...

 */

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值