Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Java: Общие вопросы > Десериализация |
Автор: can4ec 20.5.2007, 19:05 |
Здравствуйте!!! У меня такой вопрос. В одном файле (после сериализации) лежат как пример 4 объекта. В другом методе я произвожу десериализацию и хочу вынуть из этого файл все 4 свои объекта и записать их в Лист. Как мне это сделать? Просто когда я десериализирую вот так: FileInputStream fis = new FileInputStream(file); ObjectInputStream ois = new ObjectInputStream(fis); memoryDao = (Dao) ois.readObject(); мне вынимается токо один объект , а как остальные вынуть и записать в тот же Лист. P.S. Другие варианты сериализации не предлагать , у меня задание просто вытащить не один объект из файла. |
Автор: danco31 20.5.2007, 23:11 |
readObject() и читает один объект - так и метод назван. Посему, если объекты в файл складывались (писались) просто один за одним, то и читай их несколькими вызовами readObject() - в цикле или как нравится. И каждый прочитанный в List добавляй. |
Автор: can4ec 21.5.2007, 00:51 | ||
как мне их прочесть в цикле если я даже не знаю скоко у меня объектов в файле. |
Автор: RebornCrusader 21.5.2007, 07:36 |
При использовании List размера знать не надо! Берёшь http://java.sun.com/j2se/1.5.0/docs/api/java/util/ArrayList.html. Читаешь до конца файла, и делаешь list.add() для каждого. Если так хочется массив, есть метод toArray(). Или при сериализации пишешь сразу как объект массив или список, и читаешь его одним вызовом. Как он там на байты разложится - не твоя проблема. |