Thinking in JAVA第四版源代码

源代码在线查看: serialctl.java

软件大小: 543 K
上传用户: wanglp094
关键词: Thinking JAVA in 源代码
下载地址: 免注册下载 普通下载 VIP

相关代码

				//: io/SerialCtl.java
				// Controlling serialization by adding your own
				// writeObject() and readObject() methods.
				import java.io.*;
				
				public class SerialCtl implements Serializable {
				  private String a;
				  private transient String b;
				  public SerialCtl(String aa, String bb) {
				    a = "Not Transient: " + aa;
				    b = "Transient: " + bb;
				  }
				  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)
				  throws IOException, ClassNotFoundException {
				    SerialCtl sc = new SerialCtl("Test1", "Test2");
				    System.out.println("Before:\n" + sc);
				    ByteArrayOutputStream buf= new ByteArrayOutputStream();
				    ObjectOutputStream o = new ObjectOutputStream(buf);
				    o.writeObject(sc);
				    // Now get it back:
				    ObjectInputStream in = new ObjectInputStream(
				      new ByteArrayInputStream(buf.toByteArray()));
				    SerialCtl sc2 = (SerialCtl)in.readObject();
				    System.out.println("After:\n" + sc2);
				  }
				} /* Output:
				Before:
				Not Transient: Test1
				Transient: Test2
				After:
				Not Transient: Test1
				Transient: Test2
				*///:~
							

相关资源