我有一个简单的员工类:
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这样的数据库吗?
非常感谢先进。
答案 0 :(得分:4)
java.util
中的集合是可序列化的。因此,如果您使Employee类实现Serializable
,然后将您的员工放在ArrayList中,那么您可以序列化列表并保存员工。
HSQLDB和H2是用Java实现的内存数据库,可能是SQLite的良好替代品(意味着更容易从Java程序中使用)。对于一般学习目的,使用数据库是一种更实用的技能,序列化事物不是我做的很多事情(当我的代码使用序列化类时,实际的序列化留给环境,例如在HttpSession中存储事物时)。
答案 1 :(得分:2)
add(..)
List
的对象 - 例如ArrayList
至于你的SQLite问题 - 我说不出来。通常,您不应该将序列化用作数据库存储,但如果您的应用程序很简单,那就足够了。
答案 2 :(得分:1)
List<Employee> e = new ArrayList<Employee>() {{
add(new Employee(...));
add(new Employee(...));
add(new Employee(...));
add(new Employee(...));
add(new Employee(...));
}};
Employee implements Serializable {
.....
}
答案 3 :(得分:0)
我建议使用Jackson,JSON进行序列化。
好处是序列化后,您至少可以看到您的数据。 Java序列化在许多方面都是有限的。