[JAVA][クイックキャンパス]Java I/O-シリアル化


シリアル化

  • の例は、
  • でその状態を保存し、ネットワークに送信して再復元する(Deserialization)
  • オブジェクトInputStreamおよびオブジェクトOutputStream
  • を使用
  • 補助流
  • シリアルインタフェース

  • のシリアル化は、インスタンスのコンテンツが外部(ファイル、ネットワーク)に漏れることを意味するため、プログラマはオブジェクトを
  • シリアル化することができる.
  • 実装コードのないmarkインタフェース
  • //java.io.NotSerializableException: stream.serialization.Person에러발생
    //직렬화가능하다는 것을 선언해주어야함
    class Person implements Serializable{
    	String name;
    	String job;
    	
    	public Person(String name, String job) {
    		this.name=name;
    		this.job=job;
    	}
    	
    	public String toString() {
    		return name+","+job;
    	}
    
    }
    
    
    public class SerializationTest {
    
    	public static void main(String[] args) {
    		Person personLee=new Person("이순신","엔지니어");
    		Person personKim=new Person("김유신","선생님");
    		
    		try(FileOutputStream fos= new FileOutputStream("serial.dat");
    				ObjectOutputStream oos= new ObjectOutputStream(fos)){
    			oos.writeObject(personLee);
    			oos.writeObject(personKim);
    			
    		}catch(IOException e) {
    			System.out.println(e);
    		}
    		try(FileInputStream fis= new FileInputStream("serial.dat");
    				ObjectInputStream ois= new ObjectInputStream(fis)){
    			Person p1=(Person)ois.readObject();
    			Person p2=(Person)ois.readObject();
    			
    			System.out.println(p1);
    			System.out.println(p2);
    		}catch(IOException e) {
    			System.out.println(e);
    		}catch(ClassNotFoundException e) {
    			System.out.println(e);
    		}
    	}
    }