如何实现可序列化? [英] How to implement Serializable?

查看:59
本文介绍了如何实现可序列化?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我应该如何实现 可序列化界面?

我有一个 class Student ,并且需要能够将其保存到磁盘.对于我的作业,我必须序列化五个不同的 Student 对象并将其保存到文件中.

I have a class Student, and need to be able to save it to disk. For my homework, I have to serialize five different Student objects and save them to file.

class Student {
     String mFirstName;
     String mSecondName;
     String mPhoneNumber;
     String mAddress;
     String mCity;

Student(final String pFirstName, final String pSecondName, final String pPhoneNumber, final String pAddress, final String pCity){
    this.mFirstName = pFirstName;
    this.mSecondName = pSecondName;
    this.mPhoneNumber = pPhoneNumber;
    this.mAddress = pAddress;
    this.mCity = pCity;

}}

我尝试使用 ObjectOutputStream 序列化 Student ,但是会引发错误:

I've tried using ObjectOutputStream to serialize a Student, but it throws an error:

ObjectOutputStream lOutputStream = new ObjectOutputStream(new FileOutputStream("file.txt", true));
lOutputStream.write(new Student("foo","bar","555-1234","Flat 40","Liverpool"));

推荐答案

您唯一需要做的就是实现Serializable.实现此接口时,您唯一需要担心的就是确保此类的所有字段也都实现了Serializable接口.在您的情况下,所有字段都是字符串,并且它们已经实现了Serializable.因此,您只需要添加可序列化的实现. https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/io/Serializable.html

The only thing you need to do is implement Serializable. The only thing you need to worry when implementing this interface is to make sure that all fields of such class, has implemented Serializable interface as well. In your case all fields are Strings and they already implement Serializable. Therefore, you only need to add implements Serializable. https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/io/Serializable.html

public class Student implements Serializable {
    String first;
    String second;
    String phone;
    String cityAddress;
    String cityStreet;

    public Student(String s1, String s2, String s3, String s4, String s5) {
        first = s1;
        second = s2;
        phone = s3;
        cityAddress = s4;
        cityStreet = s5;
    }
}

这篇关于如何实现可序列化?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆