【问题标题】:Serialize list of employees in java在java中序列化员工列表
【发布时间】:2011-11-27 03:23:12
【问题描述】:

我有一个简单的员工类:

class Employee {

    private int     id;
    private String  firstName;
    private String  lastName;
    private String  streetAddress;
    private String  city;
    private String  state;
    private String  zip;
    private String  cellularPhoneNumber;
    private String  homePhoneNumber;

    public Employee(int id, String firstName, String lastName, String streetAddress, String city, String state, String zip, String cellularPhoneNumber, String homePhoneNumber) {
        this.id = id;
        this.firstName = firstName;
        this.lastName = lastName;
        this.streetAddress = streetAddress;
        this.city = city;
        this.state = state;
        this.zip = zip;
        this.cellularPhoneNumber = cellularPhoneNumber;
        this.homePhoneNumber = homePhoneNumber;
    }
}

如何将多个员工序列化到一个文件中?我知道如何序列化一个对象,但我怎么可能有多个呢?

有人可以指出我正确的方向或提供序列化多个对象的示例吗?使用 SQLite 之类的数据库会更好吗?

非常感谢。

【问题讨论】:

标签: java class serialization object


【解决方案1】:

java.util 中的集合是可序列化的。所以如果你让你的Employee类实现Serializable,然后把你的员工放在一个ArrayList中,那么你可以序列化这个列表,它会保存员工。

HSQLDB 和 H2 是用 Java 实现的内存数据库,可能是 SQLite 的良好替代品(意味着更容易从 Java 程序中使用)。出于一般学习目的,使用数据库是一项更实用的技能,序列化事情并不是我经常做的事情(当我的代码确实使用序列化类时,实际的序列化由环境决定,例如将内容存储在 HttpSession 中时)。

【讨论】:

  • 这不是为了公司或任何东西,我只是在玩,试图学习如何使用类。谢谢!我将使用数组列表。
【解决方案2】:
  1. add(..) 对象到 List - 例如 ArrayList
  2. 序列化列表

至于您的 SQLite 问题 - 我不知道。一般来说,您不应该将序列化用作数据库存储,但如果您的应用程序很简单,它就足够了。

【讨论】:

    【解决方案3】:
    List<Employee> e = new ArrayList<Employee>() {{
    
    add(new Employee(...));
    add(new Employee(...));
    add(new Employee(...));
    add(new Employee(...));
    add(new Employee(...));
    
    }};
    
    
    Employee implements Serializable {
    
    .....
    }
    

    ?

    【讨论】:

      【解决方案4】:

      我建议使用 Jackson 和 JSON 进行序列化。

      好处是序列化后,你至少可以看到你的数据。 Java 序列化在许多方面都有限制。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2010-11-26
        • 1970-01-01
        • 1970-01-01
        • 2012-04-05
        • 2011-08-17
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多