java序列化与反序列化
发布日期:2021-06-29 12:30:36
浏览次数:2
分类:技术文章
本文共 2598 字,大约阅读时间需要 8 分钟。
Java序列化是指把Java对象转换为字节序列的过程 而Java反序列化是指把字节序列恢复为Java对象的过程
代码如下:(因为需要对象,所以首先构建对象Student类)
package hdfs;import java.io.Serializable;public class Student implements Serializable{ private String name; private char sex; private int year; private double gpa; public Student(){} public Student(String name,char sex,int year,double gpa){ this.gpa = gpa; this.name = name; this.sex = sex; this.year = year; } public void setName(String name){ this.name = name; } public void setSex(char sex){ this.sex = sex; } public void setYear(int year){ this.year = year; } public void setGpa(double gpa){ this.gpa = gpa; } public String getName(){ return this.name; } public int getYear(){ return this.year; } public char getSex(){ return this.sex; } public double getGpa(){ return this.gpa; }}
下面为序列化与反序列化:
package hdfs;import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.IOException;import java.io.ObjectInputStream;import java.io.ObjectOutputStream;public class UseStudent { public static void main(String[]args) throws IOException, ClassNotFoundException{ //实例化Student对象 Student st = new Student("Tom",'M',20,3.6); //实例化文件对象并创建文件 File file = new File("/home/xm/a/d"); file.createNewFile(); //父类ObjectOutputStream输出流封装FileOutputStream文件输出流 FileOutputStream fos = new FileOutputStream(file); ObjectOutputStream oos = new ObjectOutputStream(fos); //将对象写进去 oos.writeObject(st); /* 一般在读写流(stream)的时候,数据是先被读到了内存中,再把数据写到文件中, 当你数据读完的时候不代表你的数据已经写完了,因为还有一部分有可能会留在内存这个缓冲区中。 这时候如果你调用了close()方法关闭了读写流,那么这部分数据就会丢失, 所以应该在关闭读写流之前先flush()。 */ oos.flush(); //关闭输出流 oos.close(); fos.close(); /*查看文件内容 ¬첲 hdfs.Studentd§პم*DgpaCsexIyearLnametLjava/lang/String;xp@ ͍͌͌MtTomXshellxm@master:~/a$ Xshell */ //创建输入流 FileInputStream fis = new FileInputStream(file); ObjectInputStream ois = new ObjectInputStream(fis); //读对象并强制类型转换 Student st1 = (Student)ois.readObject(); //查看输出 System.out.println("name= "+st1.getName()); System.out.println("sex= "+st1.getSex()); System.out.println("year= "+st1.getYear()); System.out.println("gpa= "+st1.getGpa()); //关闭输入流 ois.close(); fis.close(); /*name= Tom sex= M year= 20 gpa= 3.6*/ }}
转载地址:https://bupt-xbz.blog.csdn.net/article/details/79176001 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
网站不错 人气很旺了 加油
[***.192.178.218]2024年04月30日 21时50分52秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
一位头发发白的神人教你怎么写程序,运维,买电脑,写文章,平面设计!
2019-04-29
【第二期】那些设计漂亮、有创意的电路板!
2019-04-29
【第三期】那些设计漂亮、有创意的电路板!
2019-04-29
「第三篇」全国电子设计竞赛,这些你必须知道的比赛细节,文末附上近十年电赛题目下载...
2019-04-29
5G小科普(漫画版,So easy!)
2019-04-29
「第四篇」电赛控制题可以准备一些什么?
2019-04-29
「第六篇」对于电赛,我们应该看重什么?
2019-04-29
树莓派翻车了
2019-04-29
这位电子工程师,你不能错过。
2019-04-29
「重磅猜题之第二篇」2019年大学生电子设计竞赛
2019-04-29
干货分享 JVM 之第 3 篇 —— Java 内存结构相关
2019-04-29
基于 Hystrix 高并发服务限流第 2 篇 —— 服务隔离(线程池隔离、信号量隔离)
2019-04-29
SpringBoot 整合 JWT 实现统一认证
2019-04-29
TypeError: this.getOptions is not a function
2019-04-29
el-table 二维数组合并行
2019-04-29
UR5e机械臂运行一直阻塞在waitForServer
2019-04-29
ROS把pkg1下的某个头文件和源文件生成动态链接库供pkg2调用
2019-04-29
使用urdf_tutorial快速可视化urdf文件
2019-04-29
SQl 数据完整性(随堂博客)
2019-04-29