例如使用序列化存储存入一个 List,保存时没有错误,但有时会出现再次读取出后 List 中的某些元素会缺失,比如我的正确 List 是["1","2","3","4","5"],读出后的结果可能为["1","2","3"]或["4","5"],请问这是什么原因造成的,是存储时数据保存不全还是读取时出的问题。使用的代码如下,其中 DataCollector.finalDataMap 是静态变量,使用时会反复执行存储操作。 存
String md5 = basicOperation.getMD5((Serializable) DataCollector.finalDataMap); FinalDaTaWithMD5 fdw5 = new FinalDaTaWithMD5(); fdw5.finaldata = DataCollector.finalDataMap; fdw5.MD5 = md5; fdw5.qy_type = DataCollector.qyt; fdw5.ds_type = DataCollector.dst; FileOutputStream fos = new FileOutputStream(dir+File.separator+DataCollector.wjm+ ".dat"); ObjectOutputStream os = new ObjectOutputStream(fos); os.writeObject(fdw5); os.close();
读try { FileInputStream fis = new FileInputStream(outfilename); ObjectInputStream is = new ObjectInputStream(fis); FinalDaTaWithMD5 fdw5 = (FinalDaTaWithMD5) is.readObject(); map = fdw5.finaldata; DataCollector.qyt = fdw5.qy_type; DataCollector.dst = fdw5.ds_type; is.close(); } catch (Exception e) { e.printStackTrace(); }