SeouliteLab

[Java/자바] Object를 byte[]로 변환하기 본문

프로그래밍

[Java/자바] Object를 byte[]로 변환하기

Seoulite Lab 2024. 3. 9. 01:06

Java에서 Object를 byte 배열로 변환하는 방법에 대해 알아보겠습니다. 이러한 변환은 객체를 네트워크를 통해 전송하거나 파일에 저장하는 등의 작업에 유용합니다. 아래 예제에서는 다양한 방법을 통해 Object를 byte 배열로 변환하는 방법을 살펴보겠습니다.

1. ObjectOutputStream을 사용한 변환

ObjectOutputStream을 사용하여 Object를 byte 배열로 변환할 수 있습니다. 아래 예제에서는 ObjectOutputStream을 사용하여 Object를 byte 배열로 변환하는 방법을 보여줍니다.


import java.io.*;

public class ObjectToByteArrayExample {
    public static void main(String[] args) {
        // 변환할 객체 생성
        String obj = "Hello, World!";
        
        try {
            // ByteArrayOutputStream 생성
            ByteArrayOutputStream bos = new ByteArrayOutputStream();
            
            // ObjectOutputStream 생성
            ObjectOutputStream oos = new ObjectOutputStream(bos);
            
            // 객체를 ObjectOutputStream에 쓰기
            oos.writeObject(obj);
            oos.flush();
            
            // ByteArrayOutputStream에서 byte 배열 얻기
            byte[] bytes = bos.toByteArray();
            
            // 결과 출력
            System.out.println("Object를 byte 배열로 변환 완료");
            
            // 자원 해제
            oos.close();
            bos.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

2. 직렬화와 바이트 배열 변환

직렬화를 통해 객체를 바이트 배열로 변환할 수도 있습니다. 아래 예제에서는 직렬화를 사용하여 객체를 바이트 배열로 변환하는 방법을 보여줍니다.


import java.io.*;

public class SerializationExample {
    public static void main(String[] args) {
        // 변환할 객체 생성
        String obj = "Hello, World!";
        
        try {
            // ByteArrayOutputStream 생성
            ByteArrayOutputStream bos = new ByteArrayOutputStream();
            
            // ObjectOutputStream 생성
            ObjectOutputStream oos = new ObjectOutputStream(bos);
            
            // 객체를 직렬화하여 바이트 배열로 변환
            oos.writeObject(obj);
            oos.flush();
            
            // ByteArrayOutputStream에서 byte 배열 얻기
            byte[] bytes = bos.toByteArray();
            
            // 결과 출력
            System.out.println("Object를 byte 배열로 변환 완료");
            
            // 자원 해제
            oos.close();
            bos.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}