对象序列化由对象输出流完成:将一个java对象按照其结构转换为一组字节的过程

本文介绍了如何使用Java的ObjectOutputStream进行对象序列化,将Person对象写入person.obj文件,并详细解释了序列化与持久化的概念。

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

package io;

import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectOutputStream;

/**
 * 对象流
 * java.io.ObjectInputStream和ObjectOutputStream
 *
 * 对象流的功能:进行对象序列化与反序列化
 * 对象序列化由对象输出流完成:将一个java对象按照其结构转换为一组字节的过程
 * 对象反序列化由对象输入流完成:将一组字节还原为一个java对象的过程
 *
 */
public class OOSDemo {
    public static void main(String[] args) throws IOException {
        //将一个Person对象写入文件person.obj中
        String name = "刘桑";
        int age = 55;
        String gender = "男";
        String[] otherInfo = {"技术好","拍片儿一流","大家的启蒙老师"};
        Person p = new Person(name,age,gender,otherInfo);

        //文件输出流(低级流):将字节写入指定文件中
        FileOutputStream fos = new FileOutputStream("person.obj");
        //对象输出流(高级流):将一个java对象进行序列化
        ObjectOutputStream oos = new ObjectOutputStream(fos);
        /*
            序列化时抛出异常:
            java.io.NotSerializableException
            说明序列化的类没有实现可序列化接口:java.io.Serializable

            这里将对象写出涉及到两个操作:
            对象经对象输出流时,会被文件输出流转换为一组字节,这个过程称为对象序列化
            序列化后的字节再经过文件流被写入文件中(硬盘中),这个过程称为数据持久化
            所谓持久化就是可以长久保存了
         */
        oos.writeObject(p);
        System.out.println("写出完毕!");
        oos.close();

    }
}
package io;

import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectOutputStream;

/**
 * 对象流
 * java.io.ObjectInputStream和ObjectOutputStream
 *
 * 对象流的功能:进行对象序列化与反序列化
 * 对象序列化由对象输出流完成:将一个java对象按照其结构转换为一组字节的过程
 * 对象反序列化由对象输入流完成:将一组字节还原为一个java对象的过程
 *
 */
public class OOSDemo {
    public static void main(String[] args) throws IOException {
        //将一个Person对象写入文件person.obj中
        String name = "刘桑";
        int age = 55;
        String gender = "男";
        String[] otherInfo = {"技术好","拍片儿一流","大家的启蒙老师"};
        Person p = new Person(name,age,gender,otherInfo);

        //文件输出流(低级流):将字节写入指定文件中
        FileOutputStream fos = new FileOutputStream("person.obj");
        //对象输出流(高级流):将一个java对象进行序列化
        ObjectOutputStream oos = new ObjectOutputStream(fos);
        /*
            序列化时抛出异常:
            java.io.NotSerializableException
            说明序列化的类没有实现可序列化接口:java.io.Serializable

            这里将对象写出涉及到两个操作:
            对象经对象输出流时,会被文件输出流转换为一组字节,这个过程称为对象序列化
            序列化后的字节再经过文件流被写入文件中(硬盘中),这个过程称为数据持久化
            所谓持久化就是可以长久保存了
         */
        oos.writeObject(p);
        System.out.println("写出完毕!");
        oos.close();

    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

曲悦丹田

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值