2011-02-03 2 views
13

내 객체를 ObjectOutputStream(FileOutputStream(File))으로 직렬화하고 비슷하게 InputStreams으로 직렬화를 해제하려고합니다. 이 직렬화 된 파일 (일식 선호) 내부를 볼 수있는 방법이 있습니까, 그래서 필요한 모든 특성을 작성한 경우 확인할 수 있습니까?Eclipse에 자바 직렬화 파일 용 편집기/뷰어가 있습니까?

편집 : 구글 검색

+0

나는 당신이 다른 길을 의미한다고 생각합니다. – OrangeDog

+0

고마워, 내 질문을 업데이트했습니다;) – kulpae

+0

이것은 바보 같지만 ... 이클립스 (적어도 루나와 확장자로 .ser)에서 double click은 기본 toString()을 사용하여 객체를 보여줍니다. – Manu

답변

5

몇 가지 테스트를 쓰기 부정적 (사용하여 이클립스에 내장 된 JUnit을 지원).

바이트 코드 전문가가 아니고 16 진수 편집기를 사용하지 않는 한이 파일을 "들여다 보는"유일한 방법은 ObjectInputStream(FileInputStream(File))을 사용하는 것입니다. 실제로 테스트를 거쳤다면 아무 것도 볼 필요가 없습니다.

+0

+1 테스트는 직렬화를 검증하는 올바른 방법입니다. – rfeak

+0

고맙습니다. 필자는 테스트를 작성하는 대신 테스트를 수행하는 경향이있었습니다. 당신의 해결책은 저에게 실제로 시험을 쓰기위한 동기 부여를 제공합니다;) – kulpae

1

파일을로드하고 개체를 deserialize하는 클래스를 작성합니다. 그런 다음 Eclipse의 디버깅보기를 사용하여 오브젝트를 찾아보십시오 (중단 점을 설정하여).

2

이것은 "무료 서있는"대답이 아니며 OrangeDog의 대답을 확장 한 것입니다.

  1. 직렬화 하나의 객체에 :

    는 다음을 수행하는 것이 직렬화를 테스트하려면

    , 다음 쓰기 테스트 ". (Eclipse의 내장 된 JUnit 지원을 사용) 몇 가지 테스트를 쓰기" 파일.

  2. 동일한 파일의 다른 개체로 직렬화 해제합니다.
  3. 두 객체를 비교하여 직렬화 된 것으로 가정 된 모든 값 ()이 포함되어 있는지 확인하려면 "필요한 모든 속성이 작성되었습니다"인지 확인하십시오.
+0

그래, 그게 내가 실제로 지금 할거야, 고마워;) – kulpae

4

이것은 완전한 본격적인 편집기는 아니지만 Eamonn McManus는 직렬화 된 BLOB를 사람이 읽을 수있는 형식으로 해독하는 트랜스 코더를 작성했습니다. http://weblogs.java.net/blog/2007/06/12/disassembling-serialized-java-objects

이진 호환성 및 성능을 고려할 경우 Serializable 대신 Externalizable을 살펴 보는 것이 좋습니다.

+2

기사는 죽은 다운로드 링크가 있습니다. 그러나 출처는 https://github.com/frohoff/serialysis에서 확인할 수 있습니다. – Vadzim