import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.io.ObjectInputStream; import java.io.ObjectOutputStream; import java.io.Serializable; public class TestClone implements Cloneable, Serializable { private static final long serialVersionUID = 8918347373198497812L; private int test = -4; /** * 使用了四種方法初始化對象 */ public static void main(String[] args) throws InstantiationException, IllegalAccessException, CloneNotSupportedException, IOException, ClassNotFoundException { TestClone testClone = new TestClone(); Object clone = testClone.clone(); TestClone result = (TestClone) clone; System.out.println(result.test); TestClone tarClone = TestClone.class.newInstance(); System.out.println(tarClone.test); saveObject(); readObject(); } private static void readObject() throws IOException, ClassNotFoundException { FileInputStream inputStream = new FileInputStream(new File("c:\\temp.obj")); ObjectInputStream oInputStream = new ObjectInputStream(inputStream); Object readObject = oInputStream.readObject(); if (readObject instanceof TestClone) { TestClone testClone = (TestClone) readObject; System.out.println(testClone.test); } } private static void saveObject() throws IOException { TestClone testClone = new TestClone(); FileOutputStream out = new FileOutputStream(new File("c:\\temp.obj")); ObjectOutputStream outputStream = new ObjectOutputStream(out); outputStream.writeObject(testClone); } }