Можно ли получить атрибуты объекта, который я сохранил в файле .dat на Java? - PullRequest
0 голосов
/ 15 февраля 2019

Я создал этот класс, у которого есть атрибуты 'Surname' и 'pc'

public class Person implements Serializable{
    String surname;
    int pc;

    Person(String a, int c){
        this.surname = a;
        this.pc = c;
    }

, и создал его экземпляр под названием 'p'.Я написал Объект p внутри файла под названием people.dat, затем прочитал файл.

public class Main{

    public static void main(String[] args) throws FileNotFoundException, IOException, ClassNotFoundException {

        Scanner sc = new Scanner(System.in);
        String a = sc.nextLine();
        int c = sc.nextInt();
        Person p = new Person(a, c);
        System.out.println(p.surname+" "+p.pc);

        FileOutputStream foo = new FileOutputStream("people.dat");
        ObjectOutputStream oos = new ObjectOutputStream(foo);
        oos.writeObject(p);

        FileInputStream fis = new FileInputStream("people.dat");
        ObjectInputStream ois = new ObjectInputStream(fis);
        Object l = ois.readObject();
    }

}

Мой вопрос: возможно ли прочитать атрибуты p теперь, когда объект записан в файл?Как я могу получить к ним доступ, если так?

1 Ответ

0 голосов
/ 15 февраля 2019

Вам нужно привести Object к Person, чтобы получить доступ к его членам.Вместо

Object l = ois.readObject();

try

Person l = (Person) ois.readObject();

Поскольку десериализованный объект фактически является Person, это будет работать без каких-либо проблем.Только будьте осторожны, не пытайтесь привести объект к неправильному типу, если вам не нравится ClassCastException s.

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