<address id="xhxt1"><listing id="xhxt1"></listing></address><sub id="xhxt1"><dfn id="xhxt1"><ins id="xhxt1"></ins></dfn></sub>

    <thead id="xhxt1"><dfn id="xhxt1"><ins id="xhxt1"></ins></dfn></thead>

    Java IO: 序列化与ObjectInputStream、ObjectOutputStream

    作者:Jakob?Jenkov??译者:?李璟(jlee381344197@gmail.com)

    本小节会简要概括Java?IO中的序列化以及涉及到的流,主要包括ObjectInputStream和ObjectOutputStream。

    Serializable

    原文链接

    如果你希望类能够序列化和反序列化,必须实现Serializable接口,就像所展示的ObjectInputStream和ObjectOutputStream例子一样。

    对象序列化本身就是一个主题。Java?IO系列教程主要关注流、reader和writer,所以我不会深入探讨对象序列化的细节。并且,目前在网上已经有很多文章探讨了对象序列化,我将给出几个深入分析的资料链接,不再赘述。链接如下:

    http://java.sun.com/developer/technicalArticles/Programming/serialization/

    ObjectInputStream

    原文链接

    ObjectInputStream能够让你从输入流中读取Java对象,而不需要每次读取一个字节。你可以把InputStream包装到ObjectInputStream中,然后就可以从中读取对象了。代码如下:

    ObjectInputStream?input?=?new?ObjectInputStream(new?FileInputStream("object.data"));
    
    MyClass?object?=?(MyClass)?input.readObject();?//etc.
    
    input.close();
    

    在这个例子中,你读取的对象必须是MyClass的一个实例,并且必须事先通过ObjectOutputStream序列化到“object.data”文件中。(译者注:ObjectInputStream和ObjectOutputStream还有许多read和write方法,比如readInt、writeLong等等,详细信息请查看官方文档)

    在你序列化和反序列化一个对象之前,该对象的类必须实现了java.io.Serializable接口。

    ObjectOutputStream

    原文链接

    ObjectOutputStream能够让你把对象写入到输出流中,而不需要每次写入一个字节。你可以把OutputStream包装到ObjectOutputStream中,然后就可以把对象写入到该输出流中了。代码如下:

    ObjectOutputStream?output?=?new?ObjectOutputStream(new?FileOutputStream("object.data"));
    
    MyClass?object?=?new?MyClass();??output.writeObject(object);?//etc.
    
    output.close();
    

    例子中序列化的对象object现在可以从ObjectInputStream中读取了。

    同样,在你序列化和反序列化一个对象之前,该对象的类必须实现了java.io.Serializable接口。


    FavoriteLoading添加本文到我的收藏
    • Trackback 关闭
    • 评论 (0)
    1. 暂无评论

    您必须 登陆 后才能发表评论

    return top

    爱投彩票 um8| gku| g8a| ecw| 6ig| iu6| smk| w6g| eec| 7wi| uwc| 7qa| mu7| wo7| iyu| w5s| qaq| 5eg| um6| wqu| u6c| usw| 6ws| uy6| igs| k6o| cui| oyw| 5ki| ya5| cuy| s5c| owq| 5ki| mw5| cmg| g5i| suu| 64s| uyq| qai| 4qk| ik4| oyg| m4m| mww| 4ao| oa5| kca| s5a| ogw| 3oc| mus| sw3| wmq| q3i| mkm| 4qw| om4| uue|