문제

응용 프로그램 인스턴스간에 일종의 교환 형식을 개발하여 사용자가 파일에 정보를 저장하고 나중에 복원 할 수 있습니다. 전체 'Exchange 형식'은 직렬화되고 디스크에 기록되는 단일 클래스입니다.

해당 클래스 내에 그래픽/사운드 정보를 저장하는 방법은 무엇입니까? 파일을 .jar에 넣는 것을 피하고 싶습니다.

도움이 되었습니까?

해결책

클래스에 자원을 바이트 [] 배열로 보관할 수 있습니다. BytearRayInputStream 및 ByTearRayoutputStream을 사용하면 배열을 스트림으로 랩핑하여 리소스를 저장하고 검색 할 수 있습니다.

다른 팁

클래스 내에서 원하는 데이터를 정확하게 저장하지만 데이터에 대한 사용자 정의 직렬화를 구현하십시오. 보다 직렬화 가능.

** 나 **

사건에 대한 자세한 내용은 어떻습니까? "최상의"방법은 일반적으로 특정 응용 프로그램/사용에 따라 다릅니다. 이미지/사운드가 파일에서 나옵니까? 스트림에서? 클래스의 각 인스턴스가 별도의 이미지를 저장해야합니까? 아니면 다른 인스턴스간에 이미지를 공유 할 수 있습니까?

GSMD

이미지는 파일에서 나오고 소리는 스트림에서 나옵니다. 실제로 이미지가 첨부 될 수있는 항목 세트가 있습니다. 이미지를 공유 할 수 없습니다


어떤 방법을 시도 했습니까? 직렬화 가능한 인터페이스를 사용하는 것이 길이라고 생각합니다. 여기에 있습니다 조항 주제에.

원래,

  1. 클래스에서 직렬화 가능한 인터페이스를 구현하십시오
  2. 파일에 저장해서는 안되는 멤버 (파일 핸들, 소켓 연결 등과 같은 상황에 맞는 데이터를 포함하는 멤버).
  3. 이미지 및 사운드 클래스를 사용하여 데이터를 작성하는 방식을 사용자 정의해야하지만 구현해야합니다.

    private void writeObject (ObjectOutputStream out)는 ioException을 던졌습니다.

    private void readObject (ObjectInputStream in)는 ioException, classNotFoundException;

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top