IO流17 --- 对象流操作自定义对象 --- 技术搬运工(尚硅谷)

序列化

@Test
public void test14() throws IOException {
    ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("object1.dat"));
    oos.writeObject(new Person("张三", 20));
    oos.close();
}

反序列化

@Test
public void test15() throws IOException, ClassNotFoundException {
    ObjectInputStream ois = new ObjectInputStream(new FileInputStream("object1.dat"));
    Person p = (Person) ois.readObject();
    System.out.println(p);
    ois.close();
}

自定义的Person类。

1.实现Serializable接口,

2.提供序列版本号serialVersionUID,

3.类的属性也必须是可序列化的。

4.其中static(类所有)和transient修饰的属性不会被序列化。

package com.atguigu.java.pojo;

import java.io.Serializable;

public class Person implements Serializable {
    private static final long serialVersionUID = 487667876562L;
    private String name;
    private int age;

    public Person() {
    }

    public Person(String name, int age) {
        this.name = name;
        this.age = age;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    @Override
    public String toString() {
        return "Person{" +
                "name=‘" + name + ‘\‘‘ +
                ", age=" + age +
                ‘}‘;
    }
}

原文地址:https://www.cnblogs.com/noyouth/p/11751208.html

时间: 2024-10-06 01:10:17

IO流17 --- 对象流操作自定义对象 --- 技术搬运工(尚硅谷)的相关文章

注解2 --- 自定义 Annotation --- 技术搬运工(尚硅谷)

定义新的 Annotation 类型使用 @interface 关键字 自定义注解自动继承了java.lang.annotation.Annotation接口 Annotation 的成员变量在 Annotation 定义中以无参数方法的形式来声明.其方法名和返回值定义了该成员的名字和类型.我们称为配置参数.类型只能是八种基本数据类型.String类型.Class类型.enum类型.Annotation类型.以上所有类型的数组. 可以在定义 Annotation 的成员变量时为其指定初始值, 指

jQuery基础(常用插件 表单验证,图片放大镜,自定义对象级,jQuery UI,面板折叠)

1.表单验证插件--validate   该插件自带包含必填.数字.URL在内容的验证规则,即时显示异常信息,此外,还允许自定义验证规则,插件调用方法如下: $(form).validate({options}) 其中form参数表示表单元素名称,options参数表示调用方法时的配置对象,所有的验证规则和异常信息显示的位置都在该对象中进行设置.     2.表单插件--form 通过表单form插件,调用ajaxForm()方法,实现ajax方式向服务器提交表单数据,并通过方法中的option

JavaScript---网络编程(4)-Date、Math、Global和自定义对象

本节博客进行Date对象.Math对象.Global对象和自定义对象的用法演示. 首先是一个out.js文件内容(输出到网页中的自定义输出方法): function println(parma){ document.write(parma+"<br/>"); } function print(parma){ document.write(parma); } Date 对象 启用基本存储器并取得日期和时间. dateObj = new Date() dateObj = new

直接操作游戏对象C#游戏开发

直接操作游戏对象C#游戏开发 2.2.3  直接操作游戏对象 在Inspector视图里通过设置属性而改变游戏场景中游戏对象的状态,太过抽象,毕竟数字并不够直观.其实,改变游戏对象的状态,完全有最最直观,最最简单的方法,那就是在Scene视图里,直接使用鼠标操作游戏对象直接操作游戏对象C#游戏开发本文选自C#游戏开发快速入门大学霸. 在Unity的左上角,有个工具栏,它显示了4个按钮,如图2-10所示.分别表示拖动Scene视图.改变游戏对象的位置.朝向和大小直接操作游戏对象C#游戏开发本文选自

JS中的函数,Array对象,for-in语句,with语句,自定义对象,Prototype

一)函数 A)JS中的函数的定义格式: function add(a,b) { var sum = a+b; document.write("两个数的和是:" + sum); //return sum; } 上面只是一个例子 ,那么当我们再定义一个同名的函数会怎么样呢? function add(a,b,c) { var sum = a+b+c; document.write("三个数的和是:" + sum); } 然后调用函数: add(50,30,10);   

JS内置对象-String对象、Date日期对象、Array数组对象、Math对象

一.JavaScript中的所有事物都是对象:字符串.数组.数值.函数... 1.每个对象带有属性和方法 JavaScript允许自定义对象 2.自定义对象 a.定义并创建对象实例 b.使用函数来定义对象,然后创建新的对象实例 二.JS内置对象-String 1.string对象 string对象用于处理已有的字符串 字符串可以使用单引号或者双引号 2.indexOf( )  在字符串中查找字符串,如果匹配成功返回首字母所在的位置,否则返回-1 3.match() 匹配成功,返回匹配成功的数组,

JavaScript 本地对象、内置对象、宿主对象

首先解释下宿主环境:一般宿主环境由外壳程序创建与维护,只要能提供js引擎执行的环境都可称之为外壳程序.如:web浏览器,一些桌面应用系统等.即由web浏览器或是这些桌面应用系统早就的环境即宿主环境. 1.本地对象 ECMA-262 把本地对象(native object)定义为“独立于宿主环境的 ECMAScript 实现提供的对象”. 再来看一下,“本地对象”包含哪些内容: Object.Function.Array.String.Boolean.Number.Date.RegExp.Erro

什么是类?什么是对象?类和对象有什么关系?

面向对象(Object Oriented,OO). 起初,"面向对象"是指在程序设计中采用封装.继承.多态等设计方法.现在,面向对象的思想已经涉及到软件开发的各个方面.如,面向对象的分析(OOA,ObjectOriented Analysis),面向对象的设计(OOD,Object Oriented Design).以及面向对象的编程实现(OOP,Object Oriented Programming). 对象和类解释: 1)对象:对象是人们要进行研究的任何事物,它不仅能表示具体的事物

IO包中的其他类 打印流,序列流,操作对象,管道流,RandomAccessFile,操作基本数据类型,操作字节数组

打印流,序列流,操作对象,管道流,RandomAccessFile,操作基本数据类型,操作字节数组 一.打印流: 该流提供了打印方法,可以将各种数据类型的数据都原样打印. 字节打印流PrintStream构造函数可以接收的参数类型1.File对象 File2.字符串路径 String3.字节输出流 OutputStream 字符打印流PrintWriter(更常用)1.File对象 File2.字符串路径 String3.字节输出流 OutputStream4.字符输出流 Writer publ