使用Person类作为Object进行示范

注意:Object要能被写入流需要实现Serializable接口

存储的文件后缀名为.ser

示范Person

import java.io.Serializable;

public class Person implements Serializable{

    private static final long serialVersionUID = 1L;

    String name;

    int age;

    boolean sex;//true means male  false means female

    Person(String name,int age,boolean sex)

    {

        this.name=name;

        this.age=age;

        this.sex=sex;

    }

    void print()

    {

        System.out.println("姓名:"+name);

        System.out.println("年纪:"+age);

        System.out.println("性别:"+sex);

    }

}

将Person对象序列化存储到文件

示范Serializable_Test 类

import java.io.File;

import java.io.FileOutputStream;

import java.io.ObjectOutputStream;

public class Serializable_Test {

public static void main(String[] args) {

        try {

            Person p=new Person("张三",18,true);

            File f=new File("D:\\objecttest.ser");

            FileOutputStream fos=new FileOutputStream(f);

            ObjectOutputStream oos=new ObjectOutputStream(fos);

            oos.writeObject(p);

            oos.close();

            fos.close();

        } catch (Exception e) {

            e.printStackTrace();

        }

    }

}

从文件中读取对象,反序列化Deserializable

示范Deserializable_Test类

import java.io.File;

import java.io.FileInputStream;

import java.io.ObjectInputStream;

public class Deserializable_Test {

public static void main(String[] args) {

        try {

            File f=new File("d:\\objecttest.ser");

            FileInputStream fis=new FileInputStream(f);

            ObjectInputStream ois=new ObjectInputStream(fis);

            Person p=(Person)ois.readObject();

            p.print();

        } catch (Exception e) {

            e.printStackTrace();

        }

    }

}

Java序列化反序列化对象流ObjectInputStream、ObjectOutputStream的更多相关文章

  1. 初尝Java序列化/反序列化对象

    看个类: package com.wjy.bytes; import java.io.Serializable; public class ObjTest implements Serializabl ...

  2. 零基础学习java------day17------缓冲字节流,转换字节流,简化流,缓冲字符流,序列化和对象流

    1. 缓冲字节流 缓冲区:缓冲区实质上是一个数组.通常它是一个字节数组,但是也可以使用其他种类的数组.但是一个缓冲区不 仅仅 是一个数组.缓冲区提供了对数据的结构化访问,而且还可以跟踪系统的读/写进程 ...

  3. Java IO 流 -- 数据流和对象流 DataOutputStream ObjectOutputStream

    DataOutputStream 和 ObjectOutputStream的共同点是: 1.写出后读取 2.读取顺序和写出一致 数据流操作: // 写入 ByteArrayOutputStream b ...

  4. java序列化反序列化深入探究

    When---什么时候需要序列化和反序列化: 简单的写一个hello world程序,用不到序列化和反序列化.写一个排序算法也用不到序列化和反序列化.但是当你想要将一个对象进行持久化写入文件,或者你想 ...

  5. java序列化反序列化深入探究(转)

    When---什么时候需要序列化和反序列化: 简单的写一个hello world程序,用不到序列化和反序列化.写一个排序算法也用不到序列化和反序列化.但是当你想要将一个对象进行持久化写入文件,或者你想 ...

  6. java序列化/反序列化之xstream、protobuf、protostuff 的比较与使用例子

    目录 背景 测试 环境 工具 说明 结果 结论 xstream简单教程 准备 代码 protobuf简单教程 快速入门 下载.exe编译器 编写.proto文件 利用编译器编译.proto文件生成ja ...

  7. json 常用的序列化 反序列化对象 代码

    序列化对象: ---------------------------------------------------------- Person p = new Person() { Name = & ...

  8. Java——序列化 反序列化

    记录一下: 先粘两个比较繁琐的方法: put: public void putSerializableObject(String key, Object value, int expireTime) ...

  9. Java 序列化 反序列化 历史版本处理

    直接引用  http://www.cnblogs.com/xdp-gacl/p/3777987.html

随机推荐

  1. 使用catsup快速建立个人博客

    一.安装 time: 2016-01-2 20:30 1.使用pip安装catsup:(sudo) pip install catsup 从旧版本升级到新版本:(sudo) pip install c ...

  2. Spring Boot—04文件上传

    package com.smartmap.sample.ch1.controller.view; import java.io.File; import java.io.IOException; im ...

  3. Global Average Pooling Layers for Object Localization

    For image classification tasks, a common choice for convolutional neural network (CNN) architecture ...

  4. python学习笔记之——python函数

    1.定义一个函数 你可以定义一个自己想要功能的函数,以下是简单的规则: 函数代码块以 def 关键词开头,后接函数标识符名称和圆括号(). 任何传入参数和自变量必须放在圆括号中间.圆括号之间可以用于定 ...

  5. EJB JBOSS的安装

    下载地址:http://www.jboss.org/jbossas/downloads 下载JBoss 4.2.3-->解压 启动:bin-->run.bat 管理后台:www.local ...

  6. Android的onCreateOptionsMenu()创建菜单Menu

    android一共有三种形式的菜单:             1.选项菜单(optinosMenu)             2.上下文菜单(ContextMenu)             3.子菜 ...

  7. display:table-cell实现水平垂直居中

    如果查看css手册,会发现display有许多带table字样的可选属性,有table.inline-table.table-row-group.table-row.table-cell等10个之多, ...

  8. idea 自定义视图

    效果: 设置:!file:.iml&&!file:.idea//&&!file:.settings//*&&!file:.classpath&& ...

  9. mysql优化——explain详解

    MySQL的EXPLAIN命令用于SQL语句的查询执行计划(QEP).这条命令的输出结果能够让我们了解MySQL 优化器是如何执行SQL 语句的.这条命令并没有提供任何调整建议,但它能够提供重要的信息 ...

  10. 使用Vundle管理Vim插件

    附:仓库地址 附:我自用的vim配置文件,里面注释很多,仅供参考. Vundle是一款Vim的插件管理软件(Linux),用起来很方便的原因有几点: 支持插件超多,可以来源于github.Vundle ...