_120_Java_物件流
阿新 • • 發佈:2018-12-11
------------------------------------------------
----------------------------------------------
-----------------------------------------------
-----------------------------------------
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; import org.junit.Test; public class _001_TestObjectInputOutputStream { @Test public void test() { Person_16_04 a=new Person_16_04("小明",22); Person_16_04 b=new Person_16_04("小東",23); ObjectOutputStream oos=null; try { oos=new ObjectOutputStream(new FileOutputStream("person.txt")); oos.writeObject(a); oos.flush(); oos.writeObject(b); oos.flush(); } 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(); } } } } @Test public void testA() { ObjectInputStream ois =null; try { ois= new ObjectInputStream(new FileInputStream("person.txt")); Person_16_04 p1 = (Person_16_04) ois.readObject(); System.out.println(p1); Person_16_04 p2 = (Person_16_04) ois.readObject(); System.out.println(p2); } catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (ClassNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (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(); } } } } } /* * 要求實現序列化的類 * 1、要求此類是可序列化的,實現Serializable介面 * 2、要求類的屬性同樣要實現Serializable介面 * 3、提供一個版本號,private static final long serialVersionUID * */ class Person_16_04 implements Serializable{ private static final long serialVersionUID=878875874289894L; private String name; private Integer age; public String getName() { return name; } public void setName(String name) { this.name = name; } public Integer getAge() { return age; } public void setAge(Integer age) { this.age = age; } @Override public String toString() { return "Person_16_04 [name=" + name + ", age=" + age + "]"; } public Person_16_04(String name, Integer age) { super(); this.name = name; this.age = age; } public Person_16_04() { super(); } }