下面是一个简单的Java程序示例,可以用于手动接收用户的信息并将其添加到集合中,然后将集合序列化和反序列化。\n\njava\nimport java.io.*;\nimport java.util.ArrayList;\nimport java.util.List;\nimport java.util.Scanner;\n\npublic class UserSerializationExample {\n public static void main(String[] args) {\n List<User> userList = new ArrayList<>();\n\n Scanner scanner = new Scanner(System.in);\n\n while (true) {\n System.out.print("请输入用户姓名(输入exit退出):");\n String name = scanner.nextLine();\n\n if (name.equalsIgnoreCase("exit")) {\n break;\n }\n\n System.out.print("请输入用户年龄:");\n int age = Integer.parseInt(scanner.nextLine());\n\n User user = new User(name, age);\n userList.add(user);\n }\n\n // 序列化集合\n try (ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("users.ser"))) {\n oos.writeObject(userList);\n System.out.println("集合已成功序列化。");\n } catch (IOException e) {\n e.printStackTrace();\n }\n\n // 反序列化集合\n try (ObjectInputStream ois = new ObjectInputStream(new FileInputStream("users.ser"))) {\n List<User> deserializedUserList = (List<User>) ois.readObject();\n System.out.println("集合已成功反序列化:");\n for (User user : deserializedUserList) {\n System.out.println(user);\n }\n } catch (IOException | ClassNotFoundException e) {\n e.printStackTrace();\n }\n }\n}\n\nclass User implements Serializable {\n private String name;\n private int age;\n\n public User(String name, int age) {\n this.name = name;\n this.age = age;\n }\n\n @Override\n public String toString() {\n return "User{\" +\n "name='" + name + "'" +\n ", age=" + age +\n '}';\n }\n}\n\n\n在上述示例中,我们使用Scanner类从用户手动输入姓名和年龄,并将其添加到userList集合中。然后,我们使用ObjectOutputStream将集合序列化到名为users.ser的文件中。接下来,我们使用ObjectInputStream从文件中读取并反序列化集合,并将其存储在deserializedUserList中。最后,我们打印出反序列化后的用户信息。\n\n请注意,User类实现了Serializable接口,以便可以将其对象序列化和反序列化。


原文地址: https://www.cveoy.top/t/topic/qgZI 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录