2022. 3. 9. 14:17ㆍJAVA
0️⃣ 직렬화란?
직렬화Serialization 이란 객체를 데이터 스트림으로 만드는 것을 말한다.
즉, 데이터를 스트림에 쓰기 위해 연속적인 데이터로 변환하는 것을 말한다!
그럼 역직렬화deserialization이란 스트림으로부터 데이터를 읽어서 객체를 만드는 것을 말한다.
1️⃣ ObjectInputStream, ObjectOutputStream
직렬화(스트림에 객체를 출력) 에는 ObjectOutputStream을 사용하고, 역직렬화(스트림으로부터 객체를 입력)은 ObjectInputStream을 사용한다.
직렬화할때는 ObjectOutputStream의 writeObject()를 사용해서 객체를 출력하면 객체가 파일에 직렬화되어 저장된다.
역직렬화할때는 ObjectInputStream의 readObject()를 사용해서 저장된 데이터를 읽기만 하면 객체가 역직렬화된다.
2️⃣ 직렬화, 역직렬화 해보기
직렬화할 때는 Serializable 인터페이스를 구현하도록 변경해주면 된다!
이렇게 생성된 객체를 이제 직렬화하여 파일에 저장할 것이다.
버퍼를 이용한 FileOutputStream을 기반으로 ObjectOutputStream을 생성한 다음에 writeObject()를 이용하면 UserInfo.ser 파일에 객체가 직렬화되어 저장된다!
이번에는 역직렬화하는 예제로 이번에는 ObjectInputStream을 이용하고, readObject() 를 이용해서 역직렬화해준다.
이때 객체를 역직렬화할 때는 직렬화했던 순서와 일치해야한다!!!
'JAVA' 카테고리의 다른 글
[JAVA] 5. 논리 연산자, 조건 연산자, 대입 연산자 (0) | 2022.04.05 |
---|---|
Thread (쓰레드)란? (0) | 2022.01.20 |
[JAVA] String과 StringBuffer (0) | 2021.11.09 |