1. Object流介绍

当我们要向程序写入一个对象或读取一个对象时,我们会用ObjectOutputStream和ObjectInputStream。可是,我们写入与写出的对象要求拥有持久性,也就是对象是序列化的。Java的对象序列化将那些实现Serializable接口的对象转换成一个字节序列,并能够一以后将这个字节序列完全恢复为原来的对象。如果你不希望对象的某个参数被序列化,那么就设置为transient。Serializable接口只是个标识,没有其它函数,所以如果你想控制序列过程,你可以用externalizable接口。

2. Object流例子

package com.owen.io;import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.Serializable;/*** 使用ObjectOutputStream和ObjectInputStream,将一个对象写入硬盘,然后再将对象读出* * @author OwenWilliam**/
public class TestObjectIO
{public static void main(String[] args) throws Exception{T t = new T();t.j = 45;try{FileOutputStream fos = new FileOutputStream("E:/test/testobject.dat");ObjectOutputStream oos = new ObjectOutputStream(fos);// 写入一个对象oos.writeObject(t);oos.flush();oos.close();FileInputStream fis = new FileInputStream("E:/test/testobject.dat");ObjectInputStream ois = new ObjectInputStream(fis);// 读出对象T tReaded = (T) ois.readObject();System.out.println(tReaded.i + " " + tReaded.j + " " + tReaded.d+ " " + tReaded.k);} catch (IOException e){e.printStackTrace();}}}/*** 创建类,这个类是序列化的,也就是这个对象可以按字节流写入硬盘或写到网络中 Serializable只是java的标记接口,没的其它方法* 如果在序列化时,想要自己可以可以控制写入读出,那么就应该使用externalizable接口* * @author OwenWilliam**/
class T implements Serializable
{int i = 10;int j = 9;double d = 2.3;transient int k = 15; // 这个参数是不需要序列化的,也就是它的值不写入到计算机中,最后读取是零
}

Java I/O系统之Object流相关推荐

  1. Java高并发系统的限流策略

    限流算法 令牌桶(Token Bucket).漏桶(leaky bucket)和计数器算法是最常用的三种限流的算法. 计数器限流算法也是比较常用的,主要用来限制总并发数,比如数据库连接池大小.线程池大 ...

  2. Java I/O系统学习系列三:I/O流的典型使用方式

    尽管可以通过不同的方式组合IO流类,但我们可能也就只用到其中的几种组合.下面的例子可以作为典型的IO用法的基本参考.在这些示例中,异常处理都被简化为将异常传递给控制台,但是这只有在小型示例和工具中才适 ...

  3. JAVA mac系统io文件流_Java IO流基础1--IO的分类体系与文件流

    什么是IO流 Java中的IO 了解什么是IO流之前,要先知道什么是IO.IO,就是in和out(即输入和输出),指应用程序和外部设备之间的数据传递,常见的外部设备包括文件.管道.网络连接等. 流的概 ...

  4. java实验系统常用类,Java的常用系统类

    Java的常用系统类Tag内容描述: 1.Java语言与JBuilder应用初步 第六章 常用的Java系统类,本章要点,字符串类 数值(Number)类及其子类 数组类 集合类 Object类,字符 ...

  5. java byte char io流_吃透Java IO:字节流、字符流、缓冲流

    前言有人曾问fastjson的作者(阿里技术专家高铁):"你开发fastjson,没得到什么好处,反而挨了骂背了锅,这种事情你为什么要做呢?" 高铁答道:"因为热爱本身, ...

  6. 【java】高并发之限流 RateLimiter使用

    1.概述 转载原文:高并发之限流 你可能知道高并发系统需要限流这个东西,但具体是限制的什么,该如何去做,还是模凌两可.我们接下来系统性的给它归个小类,希望对你有所帮助. google guava中提供 ...

  7. java day20【字节流、字符流】

    第一章 IO概述 1.1 什么是IO 生活中,你肯定经历过这样的场景.当你编辑一个文本文件,忘记了ctrl+s ,可能文件就白白编辑了.当你电脑上插入一个U盘,可以把一个视频,拷贝到你的电脑硬盘里.那 ...

  8. 【26天高效学习Java编程】Day22:Java中的属性集-缓冲流-转换流-序列化流详解

    本专栏将从基础开始,循序渐进,由浅入深讲解Java的基本使用,希望大家都能够从中有所收获,也请大家多多支持. 专栏地址:26天高效学习Java编程 相关软件地址:软件地址 所有代码地址:代码地址 如果 ...

  9. JAVA基础加强篇09——IO流

    IO流概述 IO流也称为输入.输出流,就是用来读写数据的. IO 流概述 I 表示 input,是数据从硬盘文件读入到内存的过程,称之输入,负责读. O 表示 output,是内存程序的数据从内存写出 ...

  10. Thinking in java 琐碎知识点之 I/O流 、对象序列化

    Java I/O流 .对象序列化 1.File类    此类的实例可能表示(也可能不表示)实际文件系统对象,如文件或目录.    File类可以新建.删除和重命名文件和目录,但是File不能访问文件本 ...

最新文章

  1. Linux Mount Windows域用户限制的共享文件夹
  2. java ltpa_LTPA Cookie原理
  3. flex.css快速入门,极速布局
  4. Google宣布支持Vulkan作为Android的底层图形API
  5. exchange2013卸载
  6. rocketmq mysql_聊聊rocketmq-mysql的BinlogPositionManager
  7. 23种设计模式(6):模版方法模式
  8. Hadoop集群搭建及配置⑥ —— Hadoop组件安装及配置
  9. 手把手教你设计数字钟(基于protues8.6)
  10. 十步一拆:iPhone4S拆机十步曲
  11. mapgis矢量化怎么打分数_mapgis矢量化错了如何后退一步
  12. 测试基础-系统测试包括哪些内容
  13. 计算机备注用if函数怎么算,Excel中IF函数使用操作的设置技巧
  14. 浅谈基于过程与基于对象
  15. linux在双系统中消失了,win和linux双系统下,重装win系统导致linux系统消失的解决办法...
  16. 回顾日本和台湾的股市泡沫
  17. android删除本地图片,Android之删除图库照片
  18. performance性能监控
  19. jitter单位_Jitter知识
  20. 网页设计标记工具——马克鳗

热门文章

  1. Django-Rest-Framework
  2. 你所不知道的JavaScript数组
  3. linux mysql 卸载,安装,测试全过程
  4. LTT (Linux Trace Toolkit) 简介
  5. alter table move
  6. db2 teradata mysql_DB2 DPF VS Teradata选型对比?
  7. 树的子结构(C++)
  8. 快速排序(递归)-三路快速排序(图解)及代码
  9. K8S 的报错问题解决
  10. Base58编码的长度是如何计算的?