[java] JFreeChart에서 데이터 직렬화 및 역직렬화하기

JFreeChart는 데이터 시각화를 위한 자바 라이브러리입니다. 여러분은 JFreeChart를 사용하여 그래프나 차트를 생성하고 데이터를 시각적으로 표현할 수 있습니다. 하지만 때로는 생성된 그래프나 차트를 파일에 저장하거나 네트워크를 통해 전송해야 할 수도 있습니다. 이때 데이터의 직렬화와 역직렬화가 필요합니다.

직렬화(Serialization)

먼저, JFreeChart 객체를 직렬화하여 파일에 저장하거나 네트워크를 통해 전송할 수 있습니다. 직렬화는 객체를 바이트 스트림으로 변환하는 과정입니다. JFreeChart 객체를 직렬화하기 위해서는 Serializable 인터페이스를 구현해야 합니다.

import java.io.FileOutputStream;
import java.io.ObjectOutputStream;
import org.jfree.chart.JFreeChart;

public class ChartSerializationExample {
    public static void main(String[] args) {
        JFreeChart chart = createChart(); // JFreeChart 객체 생성

        try {
            FileOutputStream fileOut = new FileOutputStream("chart.ser");
            ObjectOutputStream out = new ObjectOutputStream(fileOut);
            out.writeObject(chart); // JFreeChart 객체를 직렬화하여 파일에 저장
            out.close();
            fileOut.close();
            System.out.println("Chart serialized and saved to chart.ser");
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    // JFreeChart 객체 생성하는 로직
    private static JFreeChart createChart() {
        // JFreeChart 객체 생성하는 로직 구현
        // ...
        return chart;
    }
}

위 예시에서는 ChartSerializationExample 클래스에서 createChart() 메서드를 사용하여 JFreeChart 객체를 생성합니다. 그리고 ObjectOutputStream을 사용하여 JFreeChart 객체를 직렬화하고 파일에 저장합니다. 파일 이름은 chart.ser로 지정하였습니다.

역직렬화(Deserialization)

이제 저장해둔 직렬화된 파일에서 JFreeChart 객체를 다시 역직렬화하여 사용할 수 있습니다. 역직렬화는 바이트 스트림으로부터 객체를 재구성하는 과정입니다. 파일에서 JFreeChart 객체를 역직렬화하기 위해서는 다음과 같이 코드를 작성할 수 있습니다.

import java.io.FileInputStream;
import java.io.ObjectInputStream;
import org.jfree.chart.JFreeChart;

public class ChartDeserializationExample {
    public static void main(String[] args) {
        try {
            FileInputStream fileIn = new FileInputStream("chart.ser");
            ObjectInputStream in = new ObjectInputStream(fileIn);
            JFreeChart chart = (JFreeChart) in.readObject(); // 파일에서 JFreeChart 객체 역직렬화
            in.close();
            fileIn.close();

            // 역직렬화된 JFreeChart 객체 사용
            System.out.println("Deserialized Chart:");
            System.out.println(chart.toString());
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

위 예시에서는 ChartDeserializationExample 클래스에서 파일에 저장된 JFreeChart 객체를 역직렬화하여 사용하는 방법을 보여줍니다. ObjectInputStream을 사용하여 파일에서 JFreeChart 객체를 역직렬화하고, 이를 다시 JFreeChart 객체로 캐스팅합니다. 이후에 역직렬화된 JFreeChart 객체를 사용할 수 있습니다.

정리

JFreeChart 데이터를 직렬화하고 역직렬화하는 방법을 살펴보았습니다. 직렬화를 통해 JFreeChart 객체를 파일에 저장하거나 네트워크를 통해 전송할 수 있습니다. 역직렬화를 통해 저장된 그래프나 차트를 다시 사용할 수 있습니다. 위의 예시를 참고하여 JFreeChart 데이터를 직렬화 및 역직렬화하는 작업에 활용할 수 있습니다.

참고 링크: