2008-10-15 5 views
1

사용자가 정보를 파일로 저장하고 나중에 복원 할 수 있도록 응용 프로그램 인스턴스간에 일종의 교환 형식을 개발 중입니다. 전체 '교환 형식'은 직렬화되어 디스크에 기록되는 단일 클래스입니다.클래스 내부에 이미지/사운드를 저장하는 가장 좋은 방법은 무엇입니까?

그래픽/사운드 정보를 해당 클래스에 저장 하시겠습니까? 나는 그것들에 .jar 파일들을 넣는 것을 피하고 싶다.

답변

3

리소스를 byte [] 배열로 클래스에 저장하는 것이 좋습니다. ByteArrayInputStream 및 ByteArrayOutputStream을 사용하면 배열을 스트림으로 래핑하고이를 사용하여 리소스를 저장하고 검색 할 수 있습니다.

0

** me **

어때요? "최상의"방법은 대개 특정 응용 프로그램/사용 방법에 따라 다릅니다. 이미지/사운드는 파일에서 가져온 것입니까? 스트림에서? 클래스의 각 인스턴스가 별도의 이미지를 저장할 것으로 예상됩니까? 또는 다른 인스턴스간에 이미지를 공유 할 수 있습니까?

이미지 파일에서 온을 gsmd, 스트림에서 오는 소리; 실제로 일부는 이미지가 첨부 된 항목 중 세트가 있습니다. 이미지는 가


은 무엇 방법 당신이

을 시도 이

을 공유 할 수 없습니다? Serializable 인터페이스를 사용하는 것이 최선의 방법이라고 생각합니다. 주제에 관해서는 two articles입니다. 기본적으로

,

  1. 이 클래스에 Serializable 인터페이스를 구현 과도 (파일 핸들, 소켓 연결 등과 같은 상황에 맞는 데이터를 포함 명)으로 파일에 저장해서는 안
  2. 마르크 회원 .
  3. 당신이 당신의 이미지와 사운드 클래스는 데이터를 사용하지만, 구현 작성하는 방법 사용자 정의 할 수 있습니다

    개인 무효의 writeObject을 (ObjectOutputStream에 아웃) IOException이 던졌습니다;

    private void readObject (ObjectInputStream in)가 IOException을 throw 할 경우, ClassNotFoundException;

+0

이미지는 파일에서 가져오고 사운드는 스트림에서 나옵니다. 일부는 이미지가 첨부 된 항목 세트입니다. 이미지를 공유 할 수 없습니다. – yanchenko

0

스토어에게 데이터가 정확히 어쨌든 당신은 클래스 내부 좋아하지만 데이터에 대한 사용자 정의 직렬화를 구현합니다. Serializable을 참조하십시오.

관련 문제