我正在尝试阅读多个' .dat'在特定文件夹中逐个文件。下面是我的代码
public void viewEngingeer() throws Exception
{
File f = new File("Users");
ArrayList<String> usersList = new ArrayList<String>(Arrays.asList(f.list()));
int index=0;
while (index < usersList.size()) {
User newUser=new User();
FileInputStream fis = new FileInputStream("Users/"+usersList.get(index));
ObjectInputStream ois = new ObjectInputStream(fis);
newUser = (User) ois.readObject();
ois.close();
System.out.println(newUser.getUsername());
index++;
}
}
但是我在运行时遇到错误
Exception in thread "main" java.io.InvalidClassException: oodj.User; local class incompatible: stream classdesc serialVersionUID = -7994693857260427394, local class serialVersionUID = 4996613179002222501
任何想法?谢谢
答案 0 :(得分:1)
反序列化是不可能的。 Java无法还原对象。你需要添加这样的东西:
static final long serialVersionUID = 42L;
在您的班级用户中,并使用户实施可序列化。
在此处查看更多内容:Serializabe