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. java 实现全排列

    public List<List<Integer>> permute(int[] nums) { List<List<Integer>> res = n ...

  2. 结合生活,剖析《生产者消费者模型》-java多线程(一)

    博客园的园友们好,看博客园上各位大佬的文章,已陪伴了我程序员职业的三年, 如今自己同样希望能把自己从小白到菜鸟的成长过程分享给大家.不定期更新!!! 首先我本人智商不高,理解问题十分吃力,完全不属于天 ...

  3. 使用skimage处理图像数据的9个技巧

    介绍 我们非常熟悉结构化(表格)数据的预处理步骤.你可以找到缺失的值然后添补它,然后检测并处理异常值,等等这些步骤.这有助于我们建立更好.更健壮的机器学习模型.但是当我们处理图像数据时,应该如何进行预 ...

  4. Go解算法07整数反转

    描述 给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转. 示例 1: 输入: 123 输出: 321  示例 2: 输入: -123 输出: -321 示例 3: 输入: 120 ...

  5. Python第七章-面向对象高级

    面向对象高级 一. 特性 特性是指的property. property这个词的翻译一直都有问题, 很多人把它翻译为属性, 其实是不恰当和不准确的. 在这里翻译成特性是为了和属性区别开来. 属性是指的 ...

  6. Python第十一章-常用的核心模块01-collections模块

    python 自称 "Batteries included"(自带电池, 自备干粮?), 就是因为他提供了很多内置的模块, 使用这些模块无需安装和配置即可使用. 本章主要介绍 py ...

  7. RPC框架实现(一) Protobuf的rpc实现

    概述 RPC框架是云端服务基础框架之一,负责云端服务模块之间的项目调用,类似于本地的函数调用一样方便.常见的RPC框架配带的功能有: 编解码协议.比如protobuf.thrift等等. 服务发现.指 ...

  8. iOS 内置图片瘦身

    一.iOS 内置资源的集中方式 1.1 将图片存放在 bundle 这是一种很常见的方式,项目中各类文件分类放在各个 bundle 下,项目既整洁又能达到隔离资源的目的.采用 bundle 的加载方式 ...

  9. AngularJS插件使用---angular-cookies.js

    首先在项目中引入angular-cookies.js angular模块中添加依赖:‘ngCookies’ 在控制器中依赖注入$cookies,使用$cookies操作cookie $cookiesP ...

  10. 轻轻松松了解Java的初始化方法(含对象数组的小问题)

    Java基础复习6-初始化 之前讲过了类的一些基础,想必大家都知道了类的定义 什么?你忘了? 下面给你一个例子快速复习 class AClass{ int a; boolean b; void get ...