java 对象序列化
上代码
/**
* Person.java
*/
import java.io.*;
public class Person implements Serializable
{
/**
*
*/
private static final long serialVersionUID = 1L;
private String name;
private int age;
public Person(String str,int num)
{
name=str;
age=num;
}
public String toString()
{
return "Name:"+name+"\tAge:"+age;
}
}
/**
* SerializableDemo.java
*/
import java.io.*;
public class SerializableDemo
{
public static void main(String[] args) throws FileNotFoundException, IOException, ClassNotFoundException
{
Person pers=new Person("cjc",24);
File f=new File("F:\\workspace\\JavaPrj\\test.txt");
serial(pers,f);
deserial(f);
}
public static void serial(Object p,File f) throws FileNotFoundException, IOException
{
ObjectOutputStream out=new ObjectOutputStream(new FileOutputStream(f));
out.writeObject(p);
out.close();
}
public static void deserial(File f) throws FileNotFoundException, IOException, ClassNotFoundException
{
ObjectInputStream in=new ObjectInputStream(new FileInputStream(f));
Person p=(Person)in.readObject();
in.close();
System.out.println(p);
}
}
另外,如果不希望类中的属性被序列化,可以在声明属性之前加上transient关键字
将name属性修改为transient,即private transient String name;
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。