开发者社区> @北鲲> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

JAVA序列化与反序列化

简介: Java 序列化是指把 Java 对象转换为字节序列的过程; Java 反序列化是指把字节序列恢复为 Java 对象的过程;
+关注继续查看


0x01 简述

Java 序列化是指把 Java 对象转换为字节序列的过程;
      Java 反序列化是指把字节序列恢复为 Java 对象的过程;


0x02 实验部分

 看完上面的简述,可能很多人似懂非懂。

 比如你现在写一个项目,该项目有一个登录功能。该功能每次登录都需要从指定文件txt中读取账号密码进行登录。那么该文件内账号密码为明文的状态,肯定是不安全的。所以这个时候就用到了序列化与反序列化。当把账号密码序列化之后,里面的账号密码就会变成字节形式。当有人打开也会看不懂。只有进行反序列化才能恢复原样。

类代码:




















public class USER implements Serializable {    public String user;    public int pass;    public USER(){
    }    public USER(String user,int pass){        this.user = user;        this.pass = pass;    }    public void set(String user,int pass){        this.user = user;        this.pass = pass;    }    public void get(){        System.out.println("user: " +this.user+" pass: "+this.pass);    }}

序列化代码:






USER us = new USER();  us.set("zhangsan",666666);  ObjectOutputStream obj = new ObjectOutputStream(new FileOutputStream("D:\\p.txt"));  obj.writeObject(us);  obj.close();

可以看到这就是序列化的内容

图片.png


反序列化操作





ObjectInputStream obj = new ObjectInputStream(new FileInputStream("D:\\p.txt"));        USER u = (USER)obj.readObject();        u.get();        obj.close();

        可以看到反序列化之后,成功将数据进行恢复

图片.png



0x03 结尾

本文主要讲解了ObjectOutputStream和ObjectInputStream两种类


版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
java之序列化与反序列化
  1、这里主要是介绍Protobuf提供的序列化与反序列化的高效性。相对于传统的java提供的序列化来说,Protobuf的效率提高了很多倍。但是也有不足的地方,就是proto在对象序列化的时候抛弃了很多数据。
1159 0
java序列化反序列化深入探究
When---什么时候需要序列化和反序列化: 简单的写一个hello world程序,用不到序列化和反序列化。写一个排序算法也用不到序列化和反序列化。但是当你想要将一个对象进行持久化写入文件,或者你想将一个对象从一个网络地址通过网络协议发送到另一个网络地址时,这时候就需要考虑序列化和反序列化了。
927 0
Java的序列化与反序列化
前言 Java的序列化与反序列化是Java中比较重要的一个知识,本文将总结一下,怎么使用序列化功能以及经常遇到的一些问题的解答. 什么是Java的序列化 JDK提供给我们的,可以将某一个对象转化为二进制字节流保存,并从字节流恢复对象的一种技术.
968 0
Java的序列化和反序列化
Java的序列化和反序列化概述 Java对象的序列化和反序列化,这个词对我来说追溯到大学阶段,学Java对象流时知道有这东西。老师告诉我们可以把Java对象化作字节流,储存文件或网络通信。然后就是巴啦巴拉,一脸懵逼。
599 0
MessagePack Java 0.6.X 多种类型变量的序列化和反序列化
类 Packer/Unpacker 允许序列化和反序列化多种类型的变量,如后续程序所示。这个类启用序列化和反序列化多种类型的变量和序列化主要类型变量以及包装类,String 对象,byte[] 对象, ByteBuffer 对象等的方法相似。
437 0
ABAP,Java和JavaScript的序列化,反序列化
ABAP,Java和JavaScript的序列化,反序列化
0 0
一个Java对象实例序列化和反序列化的例子
一个Java对象实例序列化和反序列化的例子
0 0
Java 中序列化与反序列化
Java 中序列化与反序列化
0 0
Java重点 | 序列化和反序列化
本文对序列化和反序列化进行了详细的介绍,本文使用大量的代码实战,帮助读者更容易的理解序列化和反序列化,通过本文我们将会了解和学习到序列化和反序列化等相关内容,下面让我们一起来学习吧。
0 0
+关注
@北鲲
主要针对服务器的渗透测试技术
文章
问答
文章排行榜
最热
最新
相关电子书
更多
JAVA反射原理以及一些常见的应用
立即下载
Java基础入门(四)-泛型、反射、注解
立即下载
Java开发手册1.3.0
立即下载