자바 해시 테이블 직렬화에 대한 논란이있는 것으로 보이지만 사용중인 논리에서 오류를 찾을 수 없습니다. 여기에 내가, 뭘 오전입니다Java Hashtable 및 serialization
Hashtable sspsrpData = new Hashtable();
for(int i=0;i<Constants.secondayStructures.length;i++) {
SecondaryStructures ss = (SecondaryStructures)(data.get(Constants.secondayStructures[i]));
sspsrpData.put(Constants.secondayStructures[i], new SecStrucPSRP(ss.getSecStruct(),ss.getLengthCounts()));
}
FileOutputStream fos = null;
ObjectOutputStream out = null;
fos = new FileOutputStream(Constants.sspsrpData);
out = new ObjectOutputStream(fos);
out.writeObject(sspsrpData);
이렇게 형성된 해시 테이블을 serialize해야 또한 해시 테이블에 3 키 - 값 쌍을 넣어해야이 코드 조각. 지금은이 코드 조각에 의해 다시 다른 프로그램을 가져 오지하려고 할 때 :
FileInputStream fis = null;
ObjectInputStream in = null;
fis = new FileInputStream(Constants.sspsrpData);
in = new ObjectInputStream(fis);
ssPsrp = (Hashtable)in.readObject();
결과 해시 테이블은이 키 - 값 쌍을 가지고있다. 해시 테이블의 수는 3이지만 해시 테이블에서 2 개의 키 값 쌍만 볼 수 있습니다. 뭐가 잘못 됐는지 이해가 안돼 !!
누군가 내가 잘못 가고 있다고 지적 할 수 있습니까?
감사합니다 좋은 하루, Santhosh
언급 한 다른 프로그램 : 동일한 Java 버전과 완전히 동일한 코드를 사용하고 있습니까? – sfussenegger
안녕하세요 ..그렇습니다. 다른 프로그램은 첫 번째 프로그램에 의해 직렬화 된 것을 deserialize하려고합니다. 오브젝트 직렬화 프로그램을 살펴보면 3 개의 오브젝트가 있지만, 직렬화 프로그램을 살펴보면 개수가 3이된다고하더라도 2 개의 오브젝트 만 포함됩니다. – user202385
어떤 특정 장소를 조사해야합니까 .. ?? – user202385