Запись ArrayList в ObjectOutputStream

262
13 марта 2017, 09:17

Можно ли передавать в ObjectOutpurStream ArrayList? И если да, как потом корректно прочитать его с помощью ObjectInputStream?

Answer 1

Можно, как объект:

final String fileName = "test.txt";
List<Integer> numbers = new ArrayList<>();
numbers.addAll(Arrays.asList(1, 2, 3));
try (FileOutputStream  fos = new FileOutputStream(fileName);
    ObjectOutputStream oos = new ObjectOutputStream(fos))
{
    oos.writeObject(numbers);
}
catch (IOException ignored) { }

И, соответственно, можно потом считать его как объект:

try (FileInputStream fis = new FileInputStream(fileName);
     ObjectInputStream ois = new ObjectInputStream(fis))
{
    List<Integer> readNumbers = (ArrayList<Integer>)ois.readObject();
    System.out.println(readNumbers);
}
catch (ClassNotFoundException | IOException ignored) { }

При этом нужно не забывать, что объекты в списке должны быть сериализуемыми.

READ ALSO
RegEx ошибка при компиляции Illegal repetition

RegEx ошибка при компиляции Illegal repetition

Вижу вот это при компиляции:

379
В чем отличие service locator от ioc-container?

В чем отличие service locator от ioc-container?

Хотелось бы примеры реализации на java, примеров реализации service locators полно, а вот ioc-containers не нашёлВсе ведет на готове реализации ioc, как правило...

323
Обьединить результаты обработки фильтром Собеля на Java без OpenCV

Обьединить результаты обработки фильтром Собеля на Java без OpenCV

ЗдравствуйтеПишу программу обработки отпечатка пальца на языке Java без OpenCV

266
Перемещение фигуры по нажатию клавиши

Перемещение фигуры по нажатию клавиши

Пишу игру пинг понг и столкнулся с проблемой движения ракеткиКак её решить?Вот мой вариант:

325