java - 无法从文件夹中读取 '.dat' 文件

标签 java file

我正在尝试在特定文件夹中逐个读取多个“.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/

相关文章:

ruby - "file.sync = true"是做什么的?

Java对象数组IO

python - 如果在 Python 中找到该行的一部分,则从文件中打印该行

java - 错误: cannot find symbol: class FileNotFoundException

java - 使用 ArrayList 打印素数

Java Android 变量的值不更新

java - JUnit 什么是使 java.io.File.delete() 单元测试失败的最佳方法

java - 当服务器不是多线程服务器时,为什么要同时处理多个客户端?

java - 无法在旧版本的 JUnit 上运行简单的 JUnit TestCase

java - ObjectInputStream.readObject 上的文件结尾异常