import java.io.*;
public class SerialCtrl implements Serializable{
private String a;
private transient String b;
public SerialCtrl(String aa,String bb){
       a="No Transient"+aa;
   bb="Transient"+bb;
}
public SerialCtrl( ){ }
public String toString( ){
return a+"\n"+b;
}
private void writeObject(ObjectOutputStream stream)throws IOException{
stream.defaultWriteObject( );
stream.writeObject(b);

}
    private void readObject(ObjectInputStream stream)throws IOException,ClassNotFoundException{
stream.defaultReadObject( );
b=(String)stream.readObject( );
}
public static void main(String[] args){
SerialCtrl sc=new SerialCtrl("Test1","Test2");
System.out.println("Before:\n"+sc);
ByteArrayOutputStream buf=new ByteArrayOutputStream( );
try{
ObjectOutputStream o=new ObjectOutputStream(buf);
o.writeObject(sc);
ObjectInputStream in=new ObjectInputStream(new ByteArrayInputStream(buf.toByteArray( )));
//SerialCtrl vx=(SerialCtrl)in.readObject( );
//SerialCtrl sc2=new SerialCtrl( );
        sc=(SerialCtrl)in.readObject( );
}catch(Exception e){System.out.println(e.toString( ));}
System.out.println("After:\n"+sc);

}
}
改为这样了就没有错误了。但是b好象是null,如何读出?