我正在尝试在特定文件夹中逐个读取多个“.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
<小时/>
有什么想法吗?谢谢
最佳答案
反序列化是不可能的。 Java无法恢复对象。您需要添加这样的内容:
static final long serialVersionUID = 42L;
在您的类User中并使User实现Serialized。
在此处查看更多信息:Serializabe
关于java - 无法从文件夹中读取 '.dat' 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25032361/