java序列化、反序列化示例

来源:互联网 发布:amd优化档案 编辑:程序博客网 时间:2024/05/22 06:23
package work;import java.io.ByteArrayInputStream;import java.io.ByteArrayOutputStream;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;import java.io.ObjectInputStream;import java.io.ObjectOutputStream;import java.io.Serializable;public class test {public static void main(String[] args) throws FileNotFoundException, IOException, ClassNotFoundException {// TODO Auto-generated method stubbox a=new box();//序列化为文件,可用于本地保存ObjectOutputStream oos1=new ObjectOutputStream(new FileOutputStream("C:\\Users\\WIND\\Desktop\\a.txt"));oos1.writeObject(a);ObjectInputStream ois=new ObjectInputStream(new FileInputStream("C:\\Users\\WIND\\Desktop\\a.txt"));box b=(box) ois.readObject();System.out.println(b.gettiji());//序列化为字符串,可用于网络传输ByteArrayOutputStream byteos = new ByteArrayOutputStream(); ObjectOutputStream oos2=new ObjectOutputStream(byteos);oos2.writeObject(a);String resualtstring=byteos.toString("ISO-8859-1");//字符集不可修改ObjectInputStream ois2=new ObjectInputStream(new ByteArrayInputStream(resualtstring.getBytes("ISO-8859-1")));box c=(box) ois2.readObject();System.out.println(c.gettiji());}}class box implements Serializable{//声明接口即可,无需实现具体方法int i,j,k;box(){i=1;j=2;k=3;}int gettiji(){return i*j*k;}}

原创粉丝点击