java-io流理解
概念:io流的i代表input(输入),o也就是out代表输出,流就是流动的意思,输入端流动到输出端.
理解:
输入输出:有人将io流的操作流程,看作是搬家,与文件建立联系等于找到新房子,从新房子的角度来看-旧房子意味着输入流,新房子意味着输出流。
从旧房子不断搬东西到新房子意味不断输入的过程,新房子里出现家具等等东西意味着输出。
流:选择什么样子的方式搬家意味着对应不同的流,比如一件一件从旧房子运到新房子就是字符流,是以字符为单位,如果是用车先装一部分,分批次运送至新家则是字节流
字节流代码解析:
输入流:分批次搬运,首先我们需要将东西放入卡车 则我们先要从旧房子(inputStream)先拿我们的家具行李也就是read(byte[] b)先放到车上也就是缓冲区b,当我们每次拿固定数量的家具时这个操作也可以是read(byte[]b,int len)len则代表固定数量。
当我们将这次需要运送的行李都放上车,则我们可以关上货车后面的门,也就是close()。
输出流:当我们的行李运到了新房子(outputStream),我们就可以搬东西到家里面了
搬东西到新房子的操作可以看作writer(byte[] b),当我们将东西都搬到房子了,我们还要需要检查一下车上是不是还有残留物,这个操作就是flush()如果有则全部搬走。
最后关闭车门close()。
字符流代码解析:
将上述的卡车看成是自行车(char[] cbuf)旧房子则便车了Reader,新房子就是Writer
缓存流(为了更快更好的搬家):
首先我们还是按照之前写的字节流代码解析中输入流的例子。
输入流,当我们搬东西到货车上时,我们每次将一件东西从楼上搬下来就又需要上楼才能继续搬东西这个样子效率很低。这个时候我们就想能不能找一个容器,将房间里的东西装进去,装满后一次性带进货车上,也就是行李箱(BufferedInputStream)他是来装旧房子的行李的所以实例化:
BufferedInputStream bis = new BufferedInputStream(new FileInputStream(f));
当行李箱满了,我们就必须将他放上车了,也就是flush();
java-io流理解相关推荐
- Java基础17:Java IO流总结
版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/a724888/article/details/80201802 这位大侠,这是我的公众号:程序员江湖 ...
- java io流区别_Java中IO流的分类和BIO,NIO,AIO的区别
到底什么是IO 我们常说的IO,指的是文件的输入和输出,但是在操作系统层面是如何定义IO的呢?到底什么样的过程可以叫做是一次IO呢? 拿一次磁盘文件读取为例,我们要读取的文件是存储在磁盘上的,我们的目 ...
- java byte char io流_一文带你看懂JAVA IO流,史上最全面的IO教学
原标题:一文带你看懂JAVA IO流,史上最全面的IO教学 一.IO流是什么 惯例引用百科的回答 流是一种抽象概念,它代表了数据的无结构化传递.按照流的方式进行输入输出,数据被当成无结构的字节序或字符 ...
- java io流详解_一文带你看懂JAVA IO流,史上最全面的IO教学啦
一.IO流是什么 惯例引用百科的回答流是一种抽象概念,它代表了数据的无结构化传递.按照流的方式进行输入输出,数据被当成无结构的字节序或字符序列.从流中取得数据的操作称为提取操作,而向流中添加数据的操作 ...
- javaio流_一文带你看懂JAVA IO流,史上最全面的IO教学啦
一.IO流是什么 惯例引用百科的回答 流是一种抽象概念,它代表了数据的无结构化传递.按照流的方式进行输入输出,数据被当成无结构的字节序或字符序列.从流中取得数据的操作称为提取操作,而向流中添加数据的操 ...
- 一文带你看懂JAVA IO流(一),史上最全面的IO教学啦(附送JAVA IO脑图)
一.IO流是什么 惯例引用百科的回答 流是一种抽象概念,它代表了数据的无结构化传递.按照流的方式进行输入输出,数据被当成无结构的字节序或字符序列.从流中取得数据的操作称为提取操作,而向流中添加数据的操 ...
- 一文带你看懂JAVA IO流,史上最全面的IO教学啦(附送JAVA IO脑图
一.IO流是什么 惯例引用百科的回答 流是一种抽象概念,它代表了数据的无结构化传递.按照流的方式进行输入输出,数据被当成无结构的字节序或字符序列.从流中取得数据的操作称为提取操作,而向流中添加数据的操 ...
- JAVA~~IO流和文件
Io流的分类 有多种分类方式: 一种方式是按照流的方向进行分类: 以内存作为参照物, 往内存中去,叫做输入(Input).或者叫做读(Read). 从内存中出来,叫做输出(Outpu ...
- Java IO流经典练习题详解
Java IO流经典练习题 转载于:https://blog.csdn.net/wenzhi20102321/article/details/52582705 博主对转载的原代码进行了调试,改了一些小 ...
- Java IO流学习总结四:缓冲流-BufferedReader、BufferedWriter
Java IO流学习总结四:缓冲流-BufferedReader.BufferedWriter 转载请标明出处:http://blog.csdn.net/zhaoyanjun6/article/det ...
最新文章
- 原创 人物志|山东省临沭县 - 一位身残志坚的奋斗青年 - 吴忠军
- Google的Java开发规范
- Linux0.1源码分析,《Linux 0.01内核分析与操作系统设计——创造你自己的操作系统》...
- 剑指offer(Java实现) 求1+2+3+…+n
- [SoapUI] 在Test Step 下加Script Assertion,用 messageExchange 获取当前步骤的response content...
- COM.MYSQL.JDBC.DRIVER 和 COM.MYSQL.CJ.JDBC.DRIVER的区别
- python中lambda的用法
- 使用data attributes
- apache ii评分怎么评_APACHEⅡ评分系统
- 地图比例尺与空间分辨率之间的关系_卫星遥感制图最佳影像空间分辨率与地图比例尺关系探讨.doc...
- DameWare IT专用内网远程控制软件
- STC8单片机驱动ADS1256多路AD采集
- 2020暨南大学计算机专硕考研经验分享
- 你想成为什么级别的程序员?
- nginx的安装升级、常用配置(二)
- mac小白的实用技巧
- 【人工智能学习笔记】初识人工智能
- 进阶篇:4.3)DFA设计指南:防错设计( 防呆设计)
- Kubernetes基础1
- 画论29 刘道醇《宋朝名画评》
热门文章
- whisper客服源码_深入ethereum源码-whisper协议解读
- Python 安装pythoncom库和pyHook
- Linux开机启动过程(2):内核启动的第一步
- 【转】C++从零实现神经网络
- 电脑动态壁纸_《Wallpaper Engine》一周电脑动态壁纸精选-第十二期
- sudo修改文件夹名字_【转载】MAC系统修改帐号短名和个人文件夹名称
- 16 bit float 存储_浅谈float和double
- Jquery的知识图谱
- Html之图片轮播(锚)
- ubuntu下django的项目相关软件安装测试