* 对象操作流:可以用于读写任意类型的对象
* ObjectOutputStream
*    writeObject
*    ObjectOutputStream(OutputStream out)
* ObjectInputStream
*    readObject
*    ObjectInputStream(InputStream in)
*
* 注意:
* 使用对象输出流写出对象,只能使用对象输入流来读取对象
* 只能将支持 java.io.Serializable 接口的对象写入流中

Demo

public class O1_流对象概述 {
public static void main(String[] args) throws IOException, ClassNotFoundException {
writeMethod();
//使用对象输出流写出对象,只能使用对象输入流来读取对象
readMethod(); } private static void readMethod() throws IOException, ClassNotFoundException {
//创建输入流对象(读入数据)
ObjectInputStream ois = new ObjectInputStream(new FileInputStream("oo.txt")); //读取数据
String s = (String)ois.readObject();
System.out.println(s); int i = ois.readInt();
System.out.println(i); Date d = (Date)ois.readObject();
System.out.println(d); //释放资源
ois.close();
} //创建输出流对象(写出数据)
private static void writeMethod() throws IOException {
//创建输出流对象(写出数据)
ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("oo.txt")); //写数据
oos.writeObject("hello");//写字符串对象
oos.writeInt(123);
oos.writeObject(new Date());//写日期对象 //释放资源
oos.close();
}
}

输出:

使用对象输出流写出对象,只能使用对象输入流来读取对象。写入的oo.txt文件用文本编辑器不能查看,只能用对象流查看。(序列化与反序列化)

34.4 对象流 ObjectOutputStream ObjectInputStream的更多相关文章

  1. Java:IO流其他类(字节数组流、字符数组流、数据流、打印流、Properities、对象流、管道流、随机访问、序列流、字符串读写流)

    一.字节数组流: 类 ByteArrayInputStream:在构造函数的时候,需要接受数据源,而且数据源是一个字节数组. 包含一个内部缓冲区,该缓冲区包含从流中读取的字节.内部计数器跟踪 read ...

  2. java IO流 (七) 对象流的使用

    1.对象流: ObjectInputStream 和 ObjectOutputStream2.作用:ObjectOutputStream:内存中的对象--->存储中的文件.通过网络传输出去:序列 ...

  3. 对象流,它们是一对高级流,负责即将java对象与字节之间在读写的过程中进行转换。 * java.io.ObjectOutputStream * java.io.ObjectInputStream

    package seday06; import java.io.Serializable;import java.util.Arrays; /** * @author xingsir * 使用当前类来 ...

  4. Java——IO流 对象的序列化和反序列化流ObjectOutputStream和ObjectInputStream

    对象的输入输出流 : 主要的作用是用于写入对象信息与读取对象信息. 对象信息一旦写到文件上那么对象的信息就可以做到持久化了 对象的输出流: ObjectOutputStream 对象的输入流:  Ob ...

  5. Java序列化流-ObjectOutputStream、ObjectInputStream

    Java对象流的基本概念: 实例代码: 实体类User: import java.io.Serializable; /** * @author zsh * @company wlgzs * @crea ...

  6. Java IO 流 -- 数据流和对象流 DataOutputStream ObjectOutputStream

    DataOutputStream 和 ObjectOutputStream的共同点是: 1.写出后读取 2.读取顺序和写出一致 数据流操作: // 写入 ByteArrayOutputStream b ...

  7. (JAVA)从零开始之--对象输入输出流ObjectInputStream、ObjectOutputStream(对象序列化与反序列化)

    对象的输入输出流 : 主要的作用是用于写入对象信息与读取对象信息. 对象信息一旦写到文件上那么对象的信息就可以做到持久化了 对象的输出流: ObjectOutputStream 对象的输入流:  Ob ...

  8. 对象输入输出流ObjectInputStream、ObjectOutputStream(对象序列化与反序列化)

    对象的输入输出流 : 主要的作用是用于写入对象信息与读取对象信息. 对象信息一旦写到文件上那么对象的信息就可以做到持久化了 对象的输出流: ObjectOutputStream 对象的输入流:  Ob ...

  9. 序列化和返序列化的概述和对象的序列化流ObjectOutputStream

    序列化和返序列化的概述 对象的序列化流ObjectOutputStream Person类: package com.yang.Test.ObjectStreamStudy; import java. ...

随机推荐

  1. 01.UNIX基础知识

    1.UNIX体系结构 什么叫做内核? 内核是一种软件,它控制计算机硬件资源,并提供程序的运行环境. 什么叫操作系统? 在广义上,操作系统包括了内核和一些其他软件,这些软件使得计算机能够发挥作用,如可以 ...

  2. ajax js分页算法分析

    显示效果:[页面总数小于等于10,全部显示,当前页特殊显示]上一页  1   2   3   4   5   6   7   8   9   10   下一页 [页面总数大于10,部分显示,当前页特殊 ...

  3. vue中v-slot使用

    vue中v-slot使用 1,v-slot的使用步骤 <!-- slot.vue--> <!-- 通过name属性指定具名插槽,没有name属性的为默认插槽--> <sl ...

  4. ReentrantReadWriteLock源码探究

    ReentrantReadWriteLock实现了可重入的读锁和写锁,其中读锁是共享锁,写锁是互斥锁.与ReentrantLock类似,ReentrantReadWriteLock也提供了公平锁和非公 ...

  5. 关于CORS(跨域资源共享)的几个http请求头小实验

    对几种与跨域相关的请求头做一个总结 关于跨域可以看:9 种常见的前端跨域解决方案(详解) 看完后可以配合我的代码做些实验,看看注释掉某个响应头会发生什么,整体代码会在最后贴出 跨域简单请求 需要在服务 ...

  6. CTF_WriteUp_HTTP——302临时重定向问题

    HTTP--302临时重定向 题目描述 点击给出的链接后,没有发生任何变化. 解决方案 通过擦好看网络请求,可以发现发生了302临时跳转,所以我们无法通过浏览器直接访问未跳转的页面,而flag 可能藏 ...

  7. AspNetCore3.1_Secutiry源码解析_8_Authorization_授权框架

    目录 AspNetCore3.1_Secutiry源码解析_1_目录 AspNetCore3.1_Secutiry源码解析_2_Authentication_核心流程 AspNetCore3.1_Se ...

  8. Django配置站点

    一 修改hosts文件 """ hosts文件涉及的dns解析 1.找到hosts文件 windows: C:\Windows\System32\drivers\etc\ ...

  9. Linux & Shell 学习笔记【1/2】

    因为工作上的需要,花了些许时间去熟悉学习Linux和Shell,现在也花点事件在此记录一下以加强巩固学习的内容吧.学的不算深入,所以都是一些比较junior的内容. 在下一篇随笔会详述之前写的一个用于 ...

  10. CentOS7 如何安装JDK(以及卸载)

    CentOS7 如何安装JDK(以及卸载) 1. 如何安装JDK? 购买云服务器后,会提供一个公网IP和内网IP,需要使用SSH工具连接到云服务器(推荐使用SecureCRT),随后就能在命令行中操作 ...