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 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:java与hadoop序列化与反序列化的比较
下一篇:HDFS中数据副本的存放策略

发表评论

最新留言

网站不错 人气很旺了 加油
[***.192.178.218]2024年04月30日 21时50分52秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章