zoukankan      html  css  js  c++  java
  • Java学习第42天

    一、今日学习

    1.对象序列化和反序列化

    (1)序列化

    对象序列化是将一个在内存中保存的对象变成一个二进制的数据流进行传输,但并不是所有类的对象都可以进行序列化操作。如果一个对象需要被序列化,则对象所在的类必须实现Serializable接口。但此接口中没有任何的方法定义,是作为标识接口出现的。

    示例:将实体类标注为可以序列化

     示例:使用ObjectOutputStream将对象写到文件中去

    (2)反序列化

    反序列化是将文件中读取对象的过程,使用ObjectInputStream可以实现反序列化。

    示例:反序列化

    (3)transient关键字

    transient关键字可以使对象的某个属性不被序列化

    public class Person implements Serializable{
           private transient String name;
           private int age;
           ...
    }

    (4)序列化一组对象

    要想序列化多个对象,可以使用数组来解决

    示例:序列化多个对象

    2.打印流

    Java提供打印流PrintStream,遇到打印文件时,首先考虑PrintStream

    3.RandomAccessFile随机访问文件

    (1)RandomAccessFile可以随机读写文件,随机读写文件即可以在任意访问文件的位置。

    (2)RandomAccessFile类包含一个记录指针,用于标识当前流的读写位置,这个位置可以向前移动,也可以向后移动。RandomAccessFile包含两个方法来操作文件记录操作:

    • long getFilePoint():记录文件指针的当前位置

    • void seek(long pos):将文件记录指针定位到pos位置

    (3)RandomAccessFile类的构造函数:

    public RandomAccessFile(File file,String mode) throws FileNotFoundException
    public RandomAccessFile(String name,String mode) throws FileNotFoundException

    (4)在Random Access File中读写文件有四种模式:

    (5)示例:使用RandomAccessFile随机读写文件

    二、问题

    关于序列化和反序列化还是不太理解

    三、明日学习

    将关于12章的题写一部分

  • 相关阅读:
    docker 创建新的镜像到私有仓库
    docker 数据管理<1>
    docker 数据管理<1>
    docker 运行挂载磁盘
    docker 运行挂载磁盘
    docker 容器管理上
    docker 指定容器名字
    消息队列应用场景解析
    Apache软件基金会Member陈亮:一名开源拓荒者的 Apache之旅
    【干货贴】消息队列如何利用标签实现消息过滤
  • 原文地址:https://www.cnblogs.com/zyljal/p/13514018.html
Copyright © 2011-2022 走看看