Java 中有几种类型的流

  1. 按照流的方向:输入流(inputStream)和输出流(outputStream)。
  2. 按照实现功能分:节点流(可以从或向一个特定的地方(节点)读写数据。如
    FileReader)和处理流(是对一个已存在的流的连接和封装,通过所封装的流的功能调用实现数据读写。如
    BufferedReader。处理流的构造方法总是要带一个其他的流对象做参数。一个流对象经过其他流的多次包装,称为流的链接。)
  3. 按照处理数据的单位:字节流和字符流。字节流继承于 InputStream 和 OutputStream,字符流继承于
    InputStreamReader 和 OutputStreamWriter。


字节流如何转为字符流

字节输入流转字符输入流通过 InputStreamReader 实现,该类的构造函数可以传入 InputStream 对象。
字节输出流转字符输出流通过 OutputStreamWriter 实现,该类的构造函数可以传入 OutputStream 对象。

字节流和字符流的区别

  • 字节流读取的时候,读到一个字节就返回一个字节; 字符流使用了字节流读到一个或多个字节(中文对应的字节数是两个,在 UTF-8 码表中是 3个字节)时。先去查指定的编码表,将查到的字符返回。 字节流可以处理所有类型数据,如:图片,MP3,AVI 视频文件,而字符流只能处理字符数据。只要是处理纯文本数据,就要优先考虑使用字符流,除此之外都用字节流。字节流主要是操作 byte 类型数据,以 byte 数组为准,主要操作类就是 OutputStream、InputStream。
  • 字符流处理的单元为 2 个字节的 Unicode 字符,分别操作字符、字符数组或字符串,而字节流处理单元为 1 个字节,操作字节和字节数组。所以字符流是由 Java 虚拟机将字节转化为 2 个字节的 Unicode 字符为单位的字符而成的,所以它对多国语言支持性比较好!如果是音频文件、图片、歌曲,就用字节流好点,如果是关系到中文(文本)的,用字符流好点。在程序中一个字符等于两个字节,java 提供了 Reader、Writer 两个专门操作字符流的类。

什么是序列化

序列化就是一种处理对象流的一种机制
所谓对象流,就是将对象的内容进行流化处理,可以对流化后的内容进行读写操作,或者是用于传输在网络之间
实际过程就是将java对象转换为字节序列的过程,

反序列化就是将字节序列恢复成java对象的过程

如何实现序列化

要想实现序列化,那么该类必须要实现Serializable接口,不过该接口没有需要实现的方法,也就是该接口中没有抽象方法,它只不过是起到了一种标记的作用,标记该类需要被序列化,然后用输出流来构造一个ObjectOutputStream对象,然后使用该对象的writeObject方法,就可以将作为参数的对象写出,反之,要恢复的话就用输入流

IO流以及他们的种类区别 序列化反序列化 如何实现相关推荐

  1. IO流--文件切割合并对象的序列化

    [阶段一目标:文件的分割]1,切割文件的原理:一个源对应多个目的:切割文件的两种方式.2,碎片文件的命名和编号.3,程序代码体现.4,如何记录源文件的类型以及碎片的个数(建立配置信息文件)(其实也可以 ...

  2. Java编程基础:学习IO流

    IO流 1.主要内容 java.io.File类的使用:计算机操作系统的文件和文件夹 IO原理及流的分类 文件流:数据流的读写都是基于文件的操作 FileInputStream FileOutputS ...

  3. day04--java高级编程:API:Object、String,Buffer、包装类、日期、java比较器、BigInteger、进制、length区别,IO流,路径,序列化id,编码

    1 API 1.1 Api文档下载 1.API (Application Programming Interface,应用程序编程接口)是 Java 提供的基本编程接口,一切可以调用的东西都是API. ...

  4. 进阶15 IO流+字节字符输入输出+IO异常处理+属性集+缓冲流+各种编码+序列化

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

  5. Java的IO流 ,BIO NIO AIO 的区别?

    目录 1.在了解不同的IO之前先了解:同步与异步,阻塞与非阻塞的区别: 2.BIO NIO AIO 分别代表什么?(面试简答): 3.BIO和NIO.AIO的区别: 4.java中io流的分类: •  ...

  6. IO流 ---有用 序列化和transient问题

    1. 异常 1.1 概述 观察如下的代码, 看有无问题: int a = 10;int b = 0;System.out.println(a / b); 我们发现, 上述代码的第3行会报错, 即: 算 ...

  7. 学Java基础19 字符流 编码表 转换流 字符高效流 对象流 序列化 以及所有的IO流总结

    一.字符流概述 1.字符流 就是用于来读写字符操作的流 2.字符流使用的原因: 使用字节流来读取文件中中文会出现乱码 因为中文不是一个字节组成的 所以读取中文的时候 需要使用字符流 字符实际上也是使用 ...

  8. (十二)Core Java IO流(Properties,序列化,管道流,字符编码)-03 (108)

     目录 :             41 ). IO流(创建java文件列表) 42 ). IO流(Properties简述) 43 ). IO流(Properties存取) 44 ). IO流(Pr ...

  9. IO流介绍、java常用的几个IO流类之间的区别,以及各自的用法、使用场景

    1. IO流介绍 IO流(Input Output Stream,输入输出流),表示数据在程序内存和磁盘之间的传输.按照数据流的流向不同分为输入.输出流,输入流表示程序从磁盘读入数据,输出流表示程序往 ...

最新文章

  1. Java 随笔——7
  2. 基于CentOS 搭建 FTP 文件服务
  3. nodejs 实践:express 最佳实践(六) express 自省获得所有的路由
  4. aspnet core 2.1中使用jwt从原理到精通一
  5. libsvm C++ 代码参数说明汇总
  6. Python 字符串类型格式化
  7. 我的世界学园都市java_我的世界学园都市地图
  8. C++中的万能头文件
  9. IDA6.1下载符号表时卡死
  10. 个人使用整理的部分测试数据整理-输入类2022
  11. 腾讯云服务器申请自助退款流程(图文教程)
  12. 第十一届 蓝桥杯 物联网设计与开发项目 决赛 第一部分 客观试题
  13. SPF算法简单解析过程
  14. Pseudo Inverse 伪逆
  15. 教你做5种地图展现方法,无需代码,上手即会
  16. wps插入I,II,III类的页码
  17. Java+MYSQL基于ssm的网上出差审批与费用报销管理系统
  18. Excel表格转换为MarkDown表格工具
  19. JSD-2204-Vue-ElementUI-Day06
  20. 1-3 5-7的c语言程序,C语言求1-1/3+1/5-1/7+...——小程序,大道理

热门文章

  1. 《他其实没那么喜欢你》经典台词(4)
  2. OpenSAP网址收藏
  3. ABAP日期函数应用
  4. MONTH_NAMES_GET
  5. 薛定谔的流量杠杆,网红电商上市的激励与诅咒
  6. log nginx 客户端请求大小_nginx
  7. java 微信多媒体文件_java微信开发之上传下载多媒体文件
  8. 能直接挂在iis的动静态网站_网站优化思路总结之前端
  9. unity怎么实现人脸追踪_Unity 2019.2 beta为AR增加面部追踪、2D图像追踪、3D对象追踪等功能...
  10. 栈子系统c语言,数据结构(栈子系统:c实现)