Подскажите, запутался. Может глупость спрашиваю, но переклинило здесь. У нас методы writeObject и readObject принимают потоки. Мы же в мейне передаем туда объект solution.
Почему не так как здесь?
solution.writeObject(objectOutputStream);
Solution solution2 = (Solution) readObject(objectInputStream);
А вот так .это из решения где передается объект
private void writeObject(ObjectOutputStream out) throws IOException {
out.defaultWriteObject();
}
private void readObject(ObjectInputStream in) throws IOException, ClassNotFoundException {
in.defaultReadObject();
}
public static void main(String[] args) {
try (ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
ObjectOutputStream objectOutputStream = new ObjectOutputStream(byteArrayOutputStream) ;
ByteArrayInputStream byteArrayInputStream = new ByteArrayInputStream(byteArrayOutputStream.toByteArray());
ObjectInputStream objectInputStream = new ObjectInputStream(byteArrayInputStream)) {
Solution solution = new Solution("your.file.name");
objectOutputStream.writeObject(solution);
Solution solution2 = (Solution) objectInputStream.readObject();
Andrey
51 уровень
Вопрос не совсем по задаче.
Решен
Комментарии (2)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Ирина АлымоваJava Developer в Nerdysoft
30 июля 2021, 05:01решение
Где-то в глубине реализации метода writeObject() класса ObjectOutputStream вызывается метод writeObject() класса Solution, поэтому можно записать и так, и так.
![]()

+2
Andrey
30 июля 2021, 08:59
Спасибо, добрый человек. А я уж думал, что у меня огромный пробел где-то в самых основах
0