package at.xupt.liu;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 TestObjectInOutputStream { public static void main(String[] args) {

Test11 t1=new Test11();
t1.testObjectOutputStream();
Test22 t2=new Test22();
t2.method2();
}
}
class method1 implements Serializable{
private int Id=01;
private String name="aa";
public void info(){
System.out.println("hello");
}
@Override
public String toString() {
return "method1 [Id=" + Id + ", name=" + name + "]";
}

}
class Test11{
/*
 * 对象的序列化过程,将内存中的对象通过ObjectOutputStream转化为二进制序列存在硬盘或发送给网络中的其它主机
 *  实现序列化的要求:
 *  1:此类是 可序列化的,要求其实现接口Serializable或Externalizable
 * 
 */
public void testObjectOutputStream(){
method1 m1=new method1();
ObjectOutputStream oos=null;
try {
// File file0=new File("duixiangliu");
FileOutputStream fos=new FileOutputStream("duixiang");
 oos=new ObjectOutputStream(fos);
oos.writeObject(m1);
oos.flush();
// fos.write(new String("sdadsaddas").getBytes());
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
if(oos!=null){
try {
oos.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}

}
}
class Test22{
/*
 * 获取:  
 *    反序列化过程:将硬盘中的文件通过ObjectOutputStream转换为相应的对象
 * 
 */
public void method2(){
ObjectInputStream ois=null;
try {
ois = new ObjectInputStream(new FileInputStream("duixiangliu"));
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
method1 m1= (method1)ois.readObject();
System.out.println(m1);
} catch (ClassNotFoundException | IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
if(ois!=null){
try {
ois.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
}java.io.WriteAbortedException: writing aborted; java.io.NotSerializableException: at.xupt.liu.method1
at java.io.ObjectInputStream.readObject0(Unknown Source)
at java.io.ObjectInputStream.readObject(Unknown Source)
at at.xupt.liu.Test22.method2(TestObjectInOutputStream.java:84)
at at.xupt.liu.TestObjectInOutputStream.main(TestObjectInOutputStream.java:18)
Caused by: java.io.NotSerializableException: at.xupt.liu.method1
at java.io.ObjectOutputStream.writeObject0(Unknown Source)
at java.io.ObjectOutputStream.writeObject(Unknown Source)
at at.xupt.liu.Test11.testObjectOutputStream(TestObjectInOutputStream.java:39)
at at.xupt.liu.TestObjectInOutputStream.main(TestObjectInOutputStream.java:17)
为什么错误信息中第二段说愿意是疑问没有序列化 我不是已经将method1 序列化了么