Сохранение объектов в файлах приводит к ошибке: «FileOutputStream не может быть преобразован в тип» - PullRequest
5 голосов
/ 02 ноября 2011

Я пытаюсь сохранить объект, я погуглил HowTo и получил учебник по этой проблеме. Однако, поскольку я никогда раньше не работал с этим, у меня возникают проблемы, которые я не могу решить.

Итак, у меня есть огромный класс Course (содержит все виды вещей, переменных, сборщиков ...), который я пытаюсь сохранить в файл.

import java.io.Serializable;
class Person implements Serializable {
... }

Теперь я отправляю объект в класс Save.java и пытаюсь сохранить его:

class Save {

    protected void saveCourse (Course course) {

        FileOutputStream courseFile = new FileOutputStream("course.data");

        ObjectOutputStream courseObj = new ObjectOutputStream(courseFile);

        courseObj.writeObject(course);
    }
}

Когда я пытаюсь скомпилировать его, FileOutputStream и ObjectOutputStream "не могут быть преобразованы в тип". Разве они не предполагают быть предопределенными. Как я могу это исправить

Учебник, где я это получил, можно найти здесь .

Ответы [ 2 ]

14 голосов
/ 02 ноября 2011

Вам необходимо импортировать FileOutputStream и ObjectOutputStream.

Поскольку они оба находятся в пакете java.io, это означает, что вынеобходимо добавить это в начало вашего файла (в соответствии с декларацией package, если она у вас есть):

import java.io.FileOutputStream;
import java.io.ObjectOutputStream;

Также будьте осторожны при выборе учебников по Java: есть лоты из плохих учебных пособий там. официальные учебные пособия по Java от Oracle довольно хороши (по крайней мере, они намного лучше, чем большинство других вещей) и должны охватывать все, что вам нужно в течение некоторого времени.

Например, есть хороший учебник по использованию ObjectOutputStream и связанных классов .

Подробнее о пакетах и ​​импорте можно найти в этом учебнике .

0 голосов
/ 19 июля 2013

Для обработки исключений обычно помещайте ваш код в блок try-catch

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