36_io_对象流

import java.io.{FileInputStream, FileOutputStream, ObjectInputStream, ObjectOutputStream}

/*
*
*
*
* */

package One {

  // 序列化对象
  object ObjectOutputStreamTest extends App {
    // 1. 创建流对象
    val outPath = "sparkcore/src/main/data/Person.data"
    private val outputStream = new ObjectOutputStream(new FileOutputStream(outPath))

    // 2. 序列化对象 持久化到磁盘
    outputStream.writeObject(new Person)

    // 3. 关闭流
    outputStream.close
    println("序列化完成")

  }

  // 反序列化对象
  object ObjectInputStreamTest extends App {
    // 1. 创建流对象
    val outPath = "sparkcore/src/main/data/Person.data"
    private val inputStream = new ObjectInputStream(new FileInputStream(outPath))

    // 2. 读取二进制 将对象反序列化到内存
    private val readObject = inputStream.readObject.asInstanceOf[Person]

    println(readObject)
    readObject.show


    // 3. 关闭流
    inputStream.close


  }

  // Person对象
  class Person extends Serializable {
    val id = 10
    val name = "大王"
    var sum = 19.8

    val serialVersionUID: Long = 888L

    def show = println("Person - show")

    override def toString = s"Person($id, $name, $sum)"
  }

}

 

posted @ 2021-11-17 16:07  学而不思则罔!  阅读(41)  评论(0)    收藏  举报