Java.io.Serializable
lastmod 2020-01-22created 2020-01-211 edits
Java Serializatoin refers to serializing a Java object's code into a Stream that can be restored later, in order to store or transmit Java objects.
Serialization (Serialize) requirements
The basic requirement for an object to be serializable is that it implements the java.io.Serializable interface.
public class Member implements Serializable {
private String name;
private String email;
private int age;
public Member(String name, String email, int age) {
this.name = name;
this.email = email;
this.age = age;
}
@Override
public String toString() {
return String.format("Member{name='%s', email='%s', age='%s'}", name, email, age);
}
}
How to serialize (Serialize)
Serialization is done with java.io.ObjectOutputStream.
public static void main(String[] args){
Member member = new Member("김배민", "[email protected]", 25);
byte[] serializedMember;
try (ByteArrayOutputStream baos = new ByteArrayOutputStream()) {
try (ObjectOutputStream oos = new ObjectOutputStream(baos)) {
oos.writeObject(member);
// serializedMember -> 직렬화된 member 객체
serializedMember = baos.toByteArray();
}
}
// 바이트 배열로 생성된 직렬화 데이터를 base64로 변환
System.out.println(Base64.getEncoder().encodeToString(serializedMember));
}