使用多个对象反序列化文件,而不知道没有对象

时间:2014-06-03 13:31:15

标签: java deserialization

我必须对序列化文件进行反序列化并将对象存储到List中。已创建序列化文件。我不知道没有物体。那么我该如何读取List结构中文件n存储中的所有对象...我的意思是文件末尾的范围是什么?

2 个答案:

答案 0 :(得分:5)

以下内容应该有效:

List<Object> objects = new ArrayList<Object>();
ObjectInputStream input = new ObjectInputStream(new FileInputStream("path/to/file"));
while (input.available() > 0) {
    Object anObject = input.readObject();
    objects.add(anObject);
}

请注意,如果您可以访问其实例已序列化的原始java类,则只能成功执行此操作。

答案 1 :(得分:0)

逐行读入文件,检查EOF。然后反序列化(或存储为字符串)并添加到列表中。

 List<Object> list = new ArrayList<>();
    BufferedReader br = new BufferedReader(new FileReader(filename));
    String nextLine = "";
    while ((nextLine = br.readLine()) != null) {
      StringBuffer sb = new StringBuffer();
      sb.append(nextLine);
      //Object obj = deserialize(sb.toString());
      list.add(obj);