import java.io.*;
import java.util.Arrays;
public class ser {
public static void main(String[] args) throws Exception {
person p = new person();
p.setUsername("dt");
p.setEmail("dt@.com");
//创建字节数组输出流对象
ByteArrayOutputStream a = new ByteArrayOutputStream();
//创建Java对象序列化输出流对象,把序列化后的字节数组存进字节数组输出流(a)
ObjectOutputStream o = new ObjectOutputStream(a);
o.writeObject(p);
o.flush();
o.close();
//先把流 转为字节数组再把字节数组转为字符串 a.toByteArray()返回的是一个实例,toByteArray()返回指定数组内容的字符串表示形式。字符串表示由数组元素的列表组成,用方括号(“[]”)括起来。相邻元素由字符“, ”(逗号后跟空格)分隔。如果 a 为空,则返回“空”。
System.out.println(Arrays.toString(a.toByteArray()));
//把要反序列化的数组放进字节数组输入流
ByteArrayInputStream b = new ByteArrayInputStream(a.toByteArray());
// 通过反序列化输入流(bais),创建Java对象输入流(ObjectInputStream)对象
ObjectInputStream in = new ObjectInputStream(b);
//反序列化后创建person类的一个实例
person pp = (person) in.readObject();
System.out.println(pp.setUsername("ddtt"));
in.close();
}
}
class person implements Serializable {
private String username;
private String email;
public String setUsername(String username) {
return username;
}
public void setEmail(String email) {
this.email = email;
}
public String getUsername() {
return username;
}
public String getEmail() {
return email;
}
}
![]()