详解 I/O流
I/O流是用于处理设备之前信息传输的流,在我们今后的学习甚至是工作中,都是十分重要的。
在我们的日常生活中,也是很常见的,譬如:文件内容的合并、设备之键的文件传输,甚至是下载软件时的断点续传,都可以用I/O流的知识来实现。
那么,话不多说,现在本人就开始讲解吧:
@
在讲解I/O流之前,本人要先来讲解下另外两个相关知识点 —— 异常 和 File类
那么,可能有的同学有疑问了—— 讲解IO流之前为什么先讲解异常和File类呢?
答曰:原因有两点:
- File类是I/O流将来需要操作的文件,所以我们需要学习 File类;
- 在操作文件的过程中,可能会出现问题,我们需要对相应的代码进行处理,所以我们需要学习 异常。
那么,本人就通过两篇博文先来介绍下 异常 以及 File类:
异常:
请观看本人博文——《详解 异常》
File类:
请观看本人博文——《详解 File类》
I/O流:
概述:
又称“输入输出流”
用于处理 设备之间的数据传输(即: 上传文件和下载文件)
I/O流主要分为两大类:
分类:
- 按照流向分:
- 输入流—— 用于 读入数据
(InputStream)- 输出流—— 用于 写出数据
(OutputStream)
在这里本人要对上面的输入和输出做一点说明:
说明:
这里的输入和输出都是针对内存而言的
如下图所示:
- 按照操作数据的类型分:
- 字节流 —— 可以读写任意类型的文件
- 字符流 —— 只能读写文本文件
(字符流相当于包装了字节流,在读取文本文件时会更高效些)
在讲解所有流之前,本人要着重强调一个问题:
流用完之后,必须释放资源!!!(即:close()掉)
那么,现在,本人来讲解下I/O流的继承体系:
I/O流的继承体系:
首先是 字节流:
请观看本人博文 —— 《详解 字节流》
然后是 字符流:
请观看本人博文 —— 《详解 字符流》
现在,本人来讲解下将要处理的信息存储在内存中的流 —— 内存操作流:
请观看本人博文 ——《详解 内存操作流》
那么,本人再来讲解下 字节流 与 字符流 的共有子流 —— 打印流:
请观看本人博文 ——《详解 打印流》
现在,本人再来讲解下一个很重要的流 —— 随机访问流:
请观看本人博文 —— 《详解 随机访问流》
现在,本人再来讲解下一个很特殊的流 —— 序列化流 与 反序列化流:
请观看本人博文 ——《详解 序列化流 与 反序列化流》
现在,本人来介绍一个 用于存储流信息的容器类 —— Properties类:
请观看本人博文 ——《详解 Properties类》
其实,I/O流的子流还有很多,本人就通过讲解以上几个来展示下我们最经常用的几种。
通过本人的讲解,我们能够发现:
这些流中最基本的就是“字节流”,
也因此它使用起来比较麻烦,但是比较灵活,功能齐全。
其它的流基本上都是(除个别外,例:随机访问流)包装过的字节流,
也因此,这些流侧重点强,效率高,但是可能会丧失一些功能。
详解 I/O流的更多相关文章
- 2020你还不会Java8新特性?方法引用详解及Stream 流介绍和操作方式详解(三)
方法引用详解 方法引用: method reference 方法引用实际上是Lambda表达式的一种语法糖 我们可以将方法引用看作是一个「函数指针」,function pointer 方法引用共分为4 ...
- 详解API Gateway流控实现,揭开ROMA平台高性能秒级流控的技术细节
摘要:ROMA平台的核心系统ROMA Connect源自华为流程IT的集成平台,在华为内部有超过15年的企业业务集成经验. 本文分享自华为云社区<ROMA集成关键技术(1)-API流控技术详解& ...
- tomcat使用详解(week4_day2)--技术流ken
tomcat简介 Tomcat是Apache软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由Apache.Sun和其他一些公司及个人共同开发 ...
- Linux 网络编程详解四(流协议与粘包)
TCP/IP协议是一种流协议,流协议是字节流,只有开始和结束,包与包之间没有边界,所以容易产生粘包,但是不会丢包. UDP/IP协议是数据报,有边界,不存在粘包,但是可能丢包. 产生粘包问题的原因 . ...
- Java IO详解(二)------流的分类
一.根据流向分为输入流和输出流: 注意输入流和输出流是相对于程序而言的. 输出:把程序(内存)中的内容输出到磁盘.光盘等存储设备中 输入:读取外部数据(磁盘.光盘等存储设备的数据)到程序(内 ...
- 【java】详解I/O流
目录结构: contents structure [+] File类 I/O流体系 流的基本介绍 访问文件 转化流 DataInputStream和DataOutputStream 对象流 推回输入流 ...
- UX术语详解:任务流,用户流,流程图以及其它全新术语
以下内容由Mockplus(摹客)团队翻译整理,仅供学习交流,Mockplus是更快更简单的原型设计工具. 用户体验拥有一长串专业的术语和可交付内容.当在线查看UX相关职位描述时,所罗列的这类术语更是 ...
- 面试题:JavaIO流分类详解与常用流用法实例
Java流概念: Java把所有的有序数据都抽象成流模型,简化了输入输出,理解了流模型就理解了Java IO.可以把流想象成水流,里面的水滴有序的朝某一方向流动.水滴就是数据,且代表着最小的数据流动单 ...
- vim编辑器详解(week1_day3)--技术流ken
vi编辑器 作用:编辑文本文件中的内容的工具 命令历史 末行模式中,以:和/开头的命令都有历史纪录,可以首先键入:或/然后按上下箭头来选择某个历史命令. 启动vim 在命令行窗口中输入以下命令即可 v ...
随机推荐
- 我是如何用IDEA调试BUG的?
最近小明的bug有点多,忙的连王者荣耀都顾不上玩了,导致现在不得不抽点时间研究一下作为当前大多Java程序员开发工具的IDEA DEBUG功能,以提高效率. 一.条件断点 场景:我们在遍历某个集合,期 ...
- UTF-8 AND UTF-8 without BOM(遇到了这个问题 郁闷了会儿)
两者的区别: Unicode规范中有一个BOM的概念.BOM——Byte Order Mark,就是字节序标记.在这里找到一段关于BOM的说明: 在UCS 编码中有一个叫做"ZERO WID ...
- 走近源码:Redis如何清除过期key
"叮--",美好的周六就这么被一阵钉钉消息吵醒了. 业务组的同学告诉我说很多用户的帐号今天被强制下线.我们的帐号系统正常的逻辑是用户登录一次后,token的有效期可以维持一天的时间 ...
- Jmeter接口测试之用户自定义变量(九)
在使用Jmeter做接口自动化测试中,经常会使用到公共的数据,那么就需要对这些公共的数据分离出来,不管是基于测试框架的思想,还是使用工具来进行做自动化测试,公共数据的分离首先是需要思考的.这里就以获取 ...
- windows10远程桌面,出现“出现身份验证错误 要求的函数不受支持...”等错误解决方法
windows家庭普通版,更新补丁后无法远程连接windows server2012,出现以下报错: 解决方法: 1.win + R打开运行,输入 regedit,回车进入注册表 2.找到以下路径 \ ...
- Windows系统向Ubuntu传输文件
PuTTY传输: 安装PuTTY,然后将PuTTY安装目录下的pscp.exe文件拷贝到/Windows/System32/目录下,在cmd控制台执行命令: # pscp 要传输的文件路径 ubunt ...
- 如何获取 bing 每日壁纸(超高清版)
目录 需求描述 实现方式 简单粗暴 如何下载 如何更高清 排坑指南 初级 优点 给有好奇心的孩子 进阶 接口 自动保存 网站集成 爬虫 需求描述 必应作为一个在壁纸圈做搜索引擎最优秀的站点,其每日壁纸 ...
- 使用 nodejs 对文件进行批量重命名
0. 前言 从B站下载了一点视频,硕鼠自动将标题添加到了每个文件名的前面,导致文件名过长,不方面查看文件的具体内容. 虽然只有二十几个文件,但是手动删除前缀还是个不小的工作量,还有可能删除错误.考虑到 ...
- 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 ...
- 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 ...