我有一个Java哈希表序列化中的问题,这对我来说似乎不合逻辑,但我无法找到我正在使用的逻辑中的错误。下面是我在做什么,Java哈希表和序列化
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);
这段代码应该把3键 - 值对的哈希表,也应该序列由此形成的哈希表。现在,当我试图通过这一段代码以检索他们回来在另一个程序:
FileInputStream fis = null;
ObjectInputStream in = null;
fis = new FileInputStream(Constants.sspsrpData);
in = new ObjectInputStream(fis);
ssPsrp = (Hashtable)in.readObject();
产生的哈希表只有2个键 - 值对。虽然哈希表中的计数表示3我只能在哈希表中看到2个键值对。我不明白什么是错的!
有人可以指出我哪里错了吗?
感谢和美好的一天, Santhosh
您提到的其他程序:是否使用相同的Java版本和完全相同的代码? – sfussenegger 2009-11-04 07:26:25
嗨..是的,其他程序试图反序列化第一个程序序列化的内容。当我查看对象序列化程序时,有3个对象,但是当我查看反序列化程序时,它只包含2个对象,虽然count说是3 .. – user202385 2009-11-04 07:44:00
任何特定的地方,我需要看看.. ?? – user202385 2009-11-04 07:45:07