Сериализация списка сотрудников в Java - PullRequest
0 голосов
/ 28 сентября 2011

У меня простой сотрудник класса:

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?

Большое спасибо заранее.

Ответы [ 4 ]

4 голосов
/ 28 сентября 2011

Коллекции в java.util являются сериализуемыми.Поэтому, если вы сделаете, чтобы ваш класс Employee реализовал Serializable, а затем поместил ваших сотрудников в ArrayList, вы можете сериализовать список, и он сохранит сотрудников.

HSQLDB и H2 - это базы данных в памяти, реализованные на Java, которые могут быть хорошей альтернативой SQLite (то есть проще в использовании из программы Java).Для общих целей обучения использование базы данных - более практический навык, я не слишком часто сериализую вещи (когда мой код использует сериализованные классы, фактическая сериализация оставляется на усмотрение среды, например, при хранении вещей в HttpSession).

2 голосов
/ 28 сентября 2011
  1. add(..) объекты для List - например, ArrayList
  2. сериализует список

Что касается вашего вопроса SQLite - я не могу сказать. Как правило, вам не следует использовать сериализацию в качестве хранилища базы данных, но если ваше приложение простое, этого должно быть достаточно.

1 голос
/ 28 сентября 2011
List<Employee> e = new ArrayList<Employee>() {{

add(new Employee(...));
add(new Employee(...));
add(new Employee(...));
add(new Employee(...));
add(new Employee(...));

}};


Employee implements Serializable {

.....
}

?

0 голосов
/ 29 сентября 2011

Я бы порекомендовал пойти на сериализацию с использованием Jackson, JSON

Преимущество заключается в том, что после сериализации вы можете хотя бы просмотреть свои Данные. Сериализация Java ограничивает во многих аспектах.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...