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 @   学而不思则罔!  阅读(32)  评论(0编辑  收藏  举报
编辑推荐:
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· 字符编码:从基础到乱码解决
· SpringCloud带你走进微服务的世界
点击右上角即可分享
微信分享提示