关于#java#的问题:java基础

/**

  • 将当前目录下的所有obj文件获取到,并进行
  • 反序列化后输出每个用户的信息(直接输出反序
  • 列化后的User对象即可)[](
    ```java

```)

以下内容部分参考ChatGPT模型:


思路:

  1. 获取当前目录下的所有obj文件;
  2. 遍历每个obj文件,进行反序列化;
  3. 输出每个用户的信息。

代码实现:

import java.io.*;
import java.util.*;

public class DeserializeObjFiles {
    public static void main(String[] args) {
        File dir = new File(".");
        File[] objFiles = dir.listFiles(new FilenameFilter() {
            @Override
            public boolean accept(File dir, String name) {
                return name.endsWith(".obj");
            }
        });
        for (File objFile : objFiles) {
            try (ObjectInputStream ois = new ObjectInputStream(new FileInputStream(objFile))) {
                User user = (User) ois.readObject();
                System.out.println(user);
            } catch (IOException | ClassNotFoundException e) {
                e.printStackTrace();
            }
        }
    }
}

class User implements Serializable {
    private static final long serialVersionUID = 1L;
    private String name;
    private int age;

    public User(String name, int age) {
        this.name = name;
        this.age = age;
    }

    @Override
    public String toString() {
        return "User{" +
                "name='" + name + '\'' +
                ", age=" + age +
                '}';
    }
}

注意:User类要实现Serializable接口,才能进行序列化和反序列化。


如果我的建议对您有帮助、请点击采纳、祝您生活愉快