java 序列化与反序列化

Posted 取个名字之麻烦

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java 序列化与反序列化相关的知识,希望对你有一定的参考价值。

package open_exe;

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 xuliehua {
    public void xulie(){
        Student st=new Student();
        st.setName("测试1");
        st.setAge(18);
        st.setSex("男");
        st.setHeight("168cm");
        File file= new File("C:"+File.separator+"file1"+File.separator+"student.txt"); 
          try  
          {  
              if(!file.getParentFile().exists()){//判断文件夹在不在  
                  file.getParentFile().mkdirs();//文件夹不在 创建文件夹
              }if(!file.exists()){//判断txt文件在不在 
                  file.createNewFile();//txt不在就创建一个txt
              }
          }  
          catch(IOException e)  
          {  
           e.printStackTrace();  
          }  
          try  
          {  
           //Student对象序列化过程  
           FileOutputStream fos = new FileOutputStream(file);  
           ObjectOutputStream oos = new ObjectOutputStream(fos);//序列化
           oos.writeObject(st);//写入txt文件
           oos.flush();  
           oos.close();  
           fos.close(); 
           System.out.println("完成系列化!");
          }    
          catch (IOException e)  
          {  
           e.printStackTrace();
           System.out.println("系列化失败!");
          } 
    }
public void fan(){
    File file = new File("C:\\file\\student.txt");   
      try  
      {  
       //Student对象序列化过程  
          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());    
           ois.close();  
           fis.close();
           System.out.println("反序列化成功!");
      }catch(ClassNotFoundException e)  
      {  
           e.printStackTrace();
           System.out.println("反序列化失败!");
          } 
      catch (IOException e)  
      {  
       e.printStackTrace();  
      } 
}
    public static void main(String[] args){
        // TODO 自动生成的方法存根
        xuliehua n=new xuliehua();
        n.xulie();
           
    }

}

 

package open_exe;

import java.io.Serializable;

public class Student implements Serializable{//注意这儿需要实现serializable接口
    private static final long serialVersionUID = 7146811040856818256L;
    private String name;
    private String sex;
    private int age;
    private String height;
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getSex() {
        return sex;
    }
    public void setSex(String sex) {
        this.sex = sex;
    }
    public int getAge() {
        return age;
    }
    public void setAge(int age) {
        this.age = age;
    }
    public String getHeight() {
        return height;
    }
    public void setHeight(String height) {
        this.height = height;
    }
    

}

 

以上是关于java 序列化与反序列化的主要内容,如果未能解决你的问题,请参考以下文章

Java序列化与反序列化

Java反序列化漏洞——反射与反序列化基础

Java序列化与反序列化

Java序列化与反序列化

Java序列化与反序列化

Java序列化与反序列化