I/O流是用于处理设备之前信息传输的流,在我们今后的学习甚至是工作中,都是十分重要的。

在我们的日常生活中,也是很常见的,譬如:文件内容的合并、设备之键的文件传输,甚至是下载软件时的断点续传,都可以用I/O流的知识来实现。

那么,话不多说,现在本人就开始讲解吧:


@


在讲解I/O流之前,本人要先来讲解下另外两个相关知识点 —— 异常File类

那么,可能有的同学有疑问了—— 讲解IO流之前为什么先讲解异常和File类呢?

答曰:原因有两点:

  1. File类是I/O流将来需要操作的文件,所以我们需要学习 File类;
  2. 在操作文件的过程中,可能会出现问题,我们需要对相应的代码进行处理,所以我们需要学习 异常。

那么,本人就通过两篇博文先来介绍下 异常 以及 File类:

异常:

请观看本人博文——《详解 异常》


File类:

请观看本人博文——《详解 File类》


I/O流:

概述

又称“输入输出流

用于处理 设备之间的数据传输(即: 上传文件和下载文件

I/O流主要分为两大类:

分类

  1. 按照流向分:
  • 输入流—— 用于 读入数据

    (InputStream)
  • 输出流—— 用于 写出数据

    (OutputStream)

在这里本人要对上面的输入和输出做一点说明

说明:

这里的输入和输出都是针对内存而言

如下图所示:

  1. 按照操作数据的类型分
  • 字节流 —— 可以读写任意类型的文件
  • 字符流 —— 只能读写文本文件

    (字符流相当于包装了字节流,在读取文本文件时会更高效些)

在讲解所有流之前,本人要着重强调一个问题:

流用完之后,必须释放资源!!!(即:close()掉)


那么,现在,本人来讲解下I/O流的继承体系

I/O流的继承体系:

首先是 字节流

请观看本人博文 —— 《详解 字节流》

然后是 字符流

请观看本人博文 —— 《详解 字符流》

现在,本人来讲解下将要处理的信息存储在内存中的流 —— 内存操作流

请观看本人博文 ——《详解 内存操作流》

那么,本人再来讲解下 字节流 与 字符流 的共有子流 —— 打印流

请观看本人博文 ——《详解 打印流》

现在,本人再来讲解下一个很重要的流 —— 随机访问流

请观看本人博文 —— 《详解 随机访问流》

现在,本人再来讲解下一个很特殊的流 —— 序列化流 与 反序列化流

请观看本人博文 ——《详解 序列化流 与 反序列化流》

现在,本人来介绍一个 用于存储流信息的容器类 —— Properties类

请观看本人博文 ——《详解 Properties类》


其实,I/O流的子流还有很多,本人就通过讲解以上几个来展示下我们最经常用的几种。

通过本人的讲解,我们能够发现:

这些流中最基本的就是“字节流”,

也因此它使用起来比较麻烦,但是比较灵活,功能齐全。

其它的流基本上都是(除个别外,例:随机访问流)包装过的字节流,

也因此,这些流侧重点强,效率高,但是可能会丧失一些功能。

详解 I/O流的更多相关文章

  1. 2020你还不会Java8新特性?方法引用详解及Stream 流介绍和操作方式详解(三)

    方法引用详解 方法引用: method reference 方法引用实际上是Lambda表达式的一种语法糖 我们可以将方法引用看作是一个「函数指针」,function pointer 方法引用共分为4 ...

  2. 详解API Gateway流控实现,揭开ROMA平台高性能秒级流控的技术细节

    摘要:ROMA平台的核心系统ROMA Connect源自华为流程IT的集成平台,在华为内部有超过15年的企业业务集成经验. 本文分享自华为云社区<ROMA集成关键技术(1)-API流控技术详解& ...

  3. tomcat使用详解(week4_day2)--技术流ken

    tomcat简介 Tomcat是Apache软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由Apache.Sun和其他一些公司及个人共同开发 ...

  4. Linux 网络编程详解四(流协议与粘包)

    TCP/IP协议是一种流协议,流协议是字节流,只有开始和结束,包与包之间没有边界,所以容易产生粘包,但是不会丢包. UDP/IP协议是数据报,有边界,不存在粘包,但是可能丢包. 产生粘包问题的原因 . ...

  5. Java IO详解(二)------流的分类

    一.根据流向分为输入流和输出流: 注意输入流和输出流是相对于程序而言的. 输出:把程序(内存)中的内容输出到磁盘.光盘等存储设备中      输入:读取外部数据(磁盘.光盘等存储设备的数据)到程序(内 ...

  6. 【java】详解I/O流

    目录结构: contents structure [+] File类 I/O流体系 流的基本介绍 访问文件 转化流 DataInputStream和DataOutputStream 对象流 推回输入流 ...

  7. UX术语详解:任务流,用户流,流程图以及其它全新术语

    以下内容由Mockplus(摹客)团队翻译整理,仅供学习交流,Mockplus是更快更简单的原型设计工具. 用户体验拥有一长串专业的术语和可交付内容.当在线查看UX相关职位描述时,所罗列的这类术语更是 ...

  8. 面试题:JavaIO流分类详解与常用流用法实例

    Java流概念: Java把所有的有序数据都抽象成流模型,简化了输入输出,理解了流模型就理解了Java IO.可以把流想象成水流,里面的水滴有序的朝某一方向流动.水滴就是数据,且代表着最小的数据流动单 ...

  9. vim编辑器详解(week1_day3)--技术流ken

    vi编辑器 作用:编辑文本文件中的内容的工具 命令历史 末行模式中,以:和/开头的命令都有历史纪录,可以首先键入:或/然后按上下箭头来选择某个历史命令. 启动vim 在命令行窗口中输入以下命令即可 v ...

随机推荐

  1. 我是如何用IDEA调试BUG的?

    最近小明的bug有点多,忙的连王者荣耀都顾不上玩了,导致现在不得不抽点时间研究一下作为当前大多Java程序员开发工具的IDEA DEBUG功能,以提高效率. 一.条件断点 场景:我们在遍历某个集合,期 ...

  2. UTF-8 AND UTF-8 without BOM(遇到了这个问题 郁闷了会儿)

    两者的区别: Unicode规范中有一个BOM的概念.BOM——Byte Order Mark,就是字节序标记.在这里找到一段关于BOM的说明: 在UCS 编码中有一个叫做"ZERO WID ...

  3. 走近源码:Redis如何清除过期key

    "叮--",美好的周六就这么被一阵钉钉消息吵醒了. 业务组的同学告诉我说很多用户的帐号今天被强制下线.我们的帐号系统正常的逻辑是用户登录一次后,token的有效期可以维持一天的时间 ...

  4. Jmeter接口测试之用户自定义变量(九)

    在使用Jmeter做接口自动化测试中,经常会使用到公共的数据,那么就需要对这些公共的数据分离出来,不管是基于测试框架的思想,还是使用工具来进行做自动化测试,公共数据的分离首先是需要思考的.这里就以获取 ...

  5. windows10远程桌面,出现“出现身份验证错误 要求的函数不受支持...”等错误解决方法

    windows家庭普通版,更新补丁后无法远程连接windows server2012,出现以下报错: 解决方法: 1.win + R打开运行,输入 regedit,回车进入注册表 2.找到以下路径 \ ...

  6. Windows系统向Ubuntu传输文件

    PuTTY传输: 安装PuTTY,然后将PuTTY安装目录下的pscp.exe文件拷贝到/Windows/System32/目录下,在cmd控制台执行命令: # pscp 要传输的文件路径 ubunt ...

  7. 如何获取 bing 每日壁纸(超高清版)

    目录 需求描述 实现方式 简单粗暴 如何下载 如何更高清 排坑指南 初级 优点 给有好奇心的孩子 进阶 接口 自动保存 网站集成 爬虫 需求描述 必应作为一个在壁纸圈做搜索引擎最优秀的站点,其每日壁纸 ...

  8. 使用 nodejs 对文件进行批量重命名

    0. 前言 从B站下载了一点视频,硕鼠自动将标题添加到了每个文件名的前面,导致文件名过长,不方面查看文件的具体内容. 虽然只有二十几个文件,但是手动删除前缀还是个不小的工作量,还有可能删除错误.考虑到 ...

  9. coderforces Gym 100803A/Aizu 1345/CSU 1536/UVALive 6832 Bit String Reordering(贪心证明缺)

    Portal: http://judge.u-aizu.ac.jp/onlinejudge/description.jsp?id=1345  http://codeforces.com/gym/100 ...

  10. C. Yet Another Walking Robot Round #617 (Div. 3)()(map + 前后相同状态的存储)

    C. Yet Another Walking Robot time limit per test 1 second memory limit per test 256 megabytes input ...