本帖最后由 赵庆礼 于 2012-7-5 11:42 编辑
import java.io.*;
class Person implements Serializable
{
static final long serialVersionUID = 42L;
String name;
int age;
Person( String name, int age )
{
this.name = name;
this.age = age;
}
public String toString()//重写toString()方法
{
return name + "::" + age;
}
}
import java.io.*;
class ObjectStreamDemo
{
public static void main( String[] args ) throws Exception
{
//writeObj();
readObj();
}
public static void readObj()throws Exception
{
ObjectInputStream sis = new ObjectInputStream( new FileInputStream( "obj.txt" ) );
Person p = ( Person )sis.readObject();
System.out.println( p ); // 为什么在这只是直接打印了Person对象p,而没有调用Person中的重写方法toString(),不理解
sis.close();
}
public static void writeObj()throws IOException
{
ObjectOutputStream oos = new ObjectOutputStream( new FileOutputStream( "obj.txt" ) );//文件名一般不存为txt,存为.class格式
oos.writeObject( new Person( "zhangsan1", 331 ) );
oos.close();
}
}
看了毕老师的视频,虽然知道了结果,但是还是不理解其中的道理,哪位大侠帮我再仔细讲讲,谢谢
问题在代码中的红色字体
|
|