java序列化和java反序列化示例
发布时间:2023-11-24 04:01:03
序列化一般应用与以下场景之中:
1.永久性保存对象,把对象通过序列化字节流保存到本地文件中;
2.通过序列化在网络中传输对象
3.通过序列化在进程间传递对象
import java.io.Serializable;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectOutputStream;
public class javaSerializable_fun {
/**
* java.io.Serializable 接口,类只有实现Serializable借口才能被序列化
* java.io.Externalizable接口,利用java的序列化和反序列化工具,很多存储和恢复对象的工作都可以自动完成。
* java.io.ObjectOutput接口,序列化传出, 继承了DataOutput接口并定义了一些方法,它支持对象序列化;
* 重点说明:在该类中,writeObject()方法是最重要的方法,用于对象序列化,如果对象包含其他的对象引用,则writeObject()方法地柜序列化这些对象;
* java.io.ObjectOutputStream类,负责向流中写入对象,构造方法:ObjectOutputStream(OutputStream out);
* java.io.ObjectInput接口,序列化传入。继承了DataInput接口并定义了一些方法,它支持对象序列化;
* ObjectInputStream类, 负责向从流中读取对象,构造方法:ObjectInputStream(InputStream out);
***/
public static void main(String[] args) {
try
{
//构造FileOutputStream对象
FileOutputStream f=new FileOutputStream("C:a.txt");
//构造ObjectOutputStream对象
ObjectOutputStream out=new ObjectOutputStream(f);
Customer customer=new Customer("bj",50);
//使用ObjectOutputStream对象的writeObject()方法进行序列化
out.writeObject(customer);
//关闭ObjectOutputStream对象
out.close();
//关闭FileOutputStream对象
f.close();
System.out.println("序列化完毕!");
}
catch(IOException e)
{
e.getStackTrace();
}
}
}
class Customer implements Serializable
{
private static final long serialVersionUID =1L;
private String name;
private int age;
public String getName()
{
return name;
}
public int getAge()
{
return age;
}
public Customer(String name,int age)
{
this.name=name;
this.age=age;
}
public String toString()
{
return "name="+ name +",age="+age;
}
}
猜你喜欢
- 本文实例为大家分享了Android实现登录注册功能的具体代码,供大家参考,具体内容如下运行环境 Android Studio总体效果图一、
- 一、定界符成帧Framer接口package framer;import java.io.IOException;import java.i
- 继承什么是继承呢?继承(Inheritance)是一种联结类与类的层次模型。指的是一个类(称为子类、子接口)继承另外的一个类(称为父类、父接
- 每当想找哪个运算符优先级高时,很多时候总是想找的就没有,真让人气愤!现在,终于有个我个人觉得非常全的,分享给大家,欢迎拍砖!C语言运算符优先
- 什么是线程池是一种基于池化思想管理线程的工具。池化技术:池化技术简单点来说,就是提前保存大量的资源,以备不时之需。比如我们的对象池,数据库连
- 按行读取文件package test; import java.io.*; import java.util.*; public class
- 在Android中,线程内部或者线程之间进行信息交互时经常会使用消息,这些基础的东西如果我们熟悉其内部的原理,将会使我们容易、更好地架构系统
- 本文实例为大家分享了flutter日期时间选择器的具体代码,供大家参考,具体内容如下1 日期选择器 //设置默认显示的日期为当前 DateT
- 一、前言最近在看android fragment与Activity进行数据传递的部分,看到了接口回调的内容,今天来总结一下。二、回调的含义和
- 一、Socket是什么Socket 的中文翻译过来就是“套接字”。套接字是什么,我们先来看看它的英文含义:插座。Socket 就像一个电话插
- 很多学习Android程序设计的人都会发现每个人对代码的写法都有不同的偏好,比较明显的就是对控件响应事件的写法的不同。因此本文就把这些写法总
- 1.强引用( Strong Reference )最普遍的引用:Object obj=new Object()抛出OutOfMemoryEr
- 这篇文章主要介绍了java实现上传文件类型检测过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋
- 消息都是存放在一个消息队列中去,而消息循环线程就是围绕这个消息队列进入一个无限循环的,直到线程退出。如果队列中有消息,消息循环线程就会把它取
- 井字棋游戏要求在3乘3棋盘上,每行都相同或者每列都相同再或者对角线相同,则胜出.因此我们可以使用一个二维数组来表示棋盘,判断胜负只需要判断数
- JDK 1.5开始提供ScheduledThreadPoolExecutor类,ScheduledThreadPoolExecutor类继承
- 1.多数据源配置类整体项目结构1).pom.xml 项目依赖<?xml version="1.0" encodin
- 初步探索首先我们要了解equals方法是什么,hashcode方法是什么。equals方法equals 是java的obejct类的一个方法
- 本文实例为大家分享了java实现简单单链表的具体代码,供大家参考,具体内容如下一、定义:单链表是一种链式存取的数据结构,用一组地址任意的存储
- 过年微信红包很火,最近有个项目也要做抢红包,于是写了个红包的生成算法。红包生成算法的需求预先生成所有的红包还是一个请求随机生成一个红包简单来