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