JAVA学习之旅:序列化与反序列化
1.序列化与反序列化的意义原理 答:就已知而言,序列化将java对象转换成字节的形式,这样有两点好处,其一、可以将对象的当前状态进行存储(已测试),以期后用,其二、可以使用套接字进行网络传输(未测试),主要通过 implements Serializable接口来表明是否可进行序列化,PS:最好加上serialVersionUID序列化码。
2.序列化与反序列化的代码实现 https://blog.csdn.net/xlgen157387/article/details/79840134为学习的对象。
package test;
import java.io.*;
import java.util.*;
class User implements Serializable{
/**
*
*/
private static final long serialVersionUID = 1L;//默认序列化的编码
private String userName;
private String passward;
private String sex;
User(String auserName, String apassward, String asex){
this.userName = auserName;
this.passward = apassward;
this.sex = asex;
}
public String getuserName(){
return this.userName;
}
public void setuserName(String auserName){
this.userName = auserName;
}
}
public class SeriableStream {//序列化的相关代码
public static void main(String[] args)throws Exception{
FileOutputStream output = new FileOutputStream("F:\\javatest\\output.txt");
FileInputStream input = new FileInputStream("F:\\javatest\\output.txt");
User user = new User("xuliugen", "123456", "male");
ObjectOutputStream out = new ObjectOutputStream(output);//从内存输出到磁盘
out.writeObject(user);//序列化
out.close();
ObjectInputStream in = new ObjectInputStream(input);//从磁盘读进内存
User userOut = (User)in.readObject();//反序列化
in.close();
/*userOut.setuserName("tangwei");
System.out.print(userOut.getuserName());*///这样的copy最佳
}
}