ObjectStream

ObjectOutputStream

用于将属性和内容保存到文件中,保存数据类型和值,即序列化,该流为处理流

static和transient修饰的属性无法序列化,切被序列化的类必须实现Serializable接口,该类的属性中如果有类这个类也必须实现该接口.

package com.cn.file;

import org.junit.Test;

import java.io.*;

public class MyObjectStream {

    @Test
public void test(){
//序列化,将带属性的内容存入文件,必须实现Serializable
// 接口的对象才能被写入
String filePath="F:\\y\\file01.txt";
ObjectOutputStream os =null;
Dog dog1=new Dog(4,"哈哈");
try { os=new ObjectOutputStream(new FileOutputStream(filePath));
os.writeByte(10);
os.writeChar('a');
os.writeInt(100);
os.writeUTF("改革春风abc");
os.writeObject(dog1);
os.writeObject(new Dog(6,"嘿嘿"));
System.out.println("序列化完成"); } catch (IOException e) {
e.printStackTrace();
}finally {
try {
os.close();
} catch (IOException e) {
e.printStackTrace();
} } } }

ObjectInputStream

用于反序列化,将文件内容读取出来.


package com.cn.file; import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.ObjectInputStream; public class MyObjectStream2 { public static void main(String[] args) throws IOException, ClassNotFoundException {
String filePath="F:\\y\\file01.txt";
ObjectInputStream is=new ObjectInputStream(new FileInputStream(filePath));
//反序列化时顺序要和写入顺序一致,不然乱码
System.out.println(is.readByte());
System.out.println(is.readChar());
System.out.println(is.readInt());
System.out.println(is.readUTF());
Object dog=is.readObject();
System.out.println(dog.getClass());
System.out.println(dog.toString());
is.close(); } }

随机推荐

  1. 解决raw.githubusercontent.com图片无法访问的问题(github图床图片无法显示,但仓库已存储成功)

    解决raw.githubusercontent.com无法访问的问题(picgo+github配置图床图片不显示,但仓库已存储成功) 关于如何配置picgo+github图床参考我的这篇文章: htt ...

  2. Emmet Documentation ( Abbreviations+CSS Abbreviations )

    Emmet Documentation Emmet - the essential toolkit for web-developers Abbreviations Abbreviations Syn ...

  3. #三分,分治,计算几何,prim#JZOJ 3860 地壳运动

    题目 \(q\)组询问查询最小生成树,边权为\(u*k1+v*k2\)(\(k1,k2\)每次询问都不同) \(n\leq 35,m\leq 25000,q\leq 200000\) 分析 纯\(\t ...

  4. Docker 学习路线 3:安装设置 Docker Desktop 与 Docker 引擎指南

    Docker提供了一个名为Docker Desktop的桌面应用程序,简化了安装和设置过程.还有另一个选项可以使用Docker引擎进行安装. Docker Desktop网站 Docker引擎 Doc ...

  5. Python设计模式----4.构建者模式

    构建者模式: 将一个复杂对象的构造与表现进行分离,利用多个步骤进行创建,同一个构建过程可用于创建多个不同的表现 构建者模式一般由 Director(指挥官)和 Builder(建设者)构成 class ...

  6. 56.5K star的gpt4free开源项目到底真的假的?

    前言 这个项目是我很早之前就star,只是当时觉得有点天真,怎么会有那么多免费的好事情呢?然后就在清明节前夕,OpenAI 开放了免登录即可使用GPT-3.5的模型,那么势必很快就有了免费使用GPT- ...

  7. 详解K8s 镜像缓存管理kube-fledged

    本文分享自华为云社区<K8s 镜像缓存管理 kube-fledged 认知>,作者: 山河已无恙. 我们知道 k8s 上的容器调度需要在调度的节点行拉取当前容器的镜像,在一些特殊场景中, ...

  8. nginx重新整理——————http请求的11个阶段中的access阶段[十五]

    前言 简单介绍一下access 阶段. 正文 限制某些ip地址的访问权限: syntax: allow address| CIDR|unix:|all; defuat: - context: http ...

  9. async/await 贴脸输出,这次你总该明白了

    出来混总是要还的 最近在准备记录一个.NET Go核心能力的深度对比, 关于.NET/Go的异步实现总感觉没敲到点上. async/await是.NET界老生常谈的话题,每至于此,状态机又是必聊的话题 ...

  10. sql多表分页查询【oracle】

    sql多表查询[oracle] 做个记录,好歹是写出来了,使用左连接的方法,进行四表查询,且使用rownum进行分页 把涉及内容的全部替换了,不过应该都看得懂,就不说了 select * from ( ...