博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
happy in java之io流简介
阅读量:5133 次
发布时间:2019-06-13

本文共 1109 字,大约阅读时间需要 3 分钟。

 

闲来没事,重温马士兵老师的java基础。。。

流  水流的流  流氓的流,,流 英文叫做stream,溪流

流的分类:

流是用来读写数据的。

 

流就像水流一样,File类封装的是文件的名字,它是内存里头的一个对象,OK,但是真正的文件是在硬盘上的一块空间,在这文件里头,存着各种各样的数据,那么我们想读这数据怎么办呢?是这样来读,是通过一个流的方式来读。

如下图,比方说这是我们文件,咱们要想从程序读数据,大家都知道,对于计算机来说,你读任何的数据都是什么样的形式,是不是都是010101 这些形式,对吧 。

怎么样吧这些文件里边的内容个读出来,你就把这个文件想象成一个小桶。文件就是个桶,你怎么从桶里边取水呢?或者说怎么从文件里边取数据呢,常见的取法是这样的,我们弄一根管道怼到桶上,然后把这根管道,哐唧,一怼,怼到桶上边,这边打开水龙头,就开始出水,这就叫流,什么叫流,这根管道就叫流水流哗啦哗啦哗啦流出来了,这就叫流,java里头的输入输出,跟这个水流一模一样,当你要从文件取数据的时候,一根管道咣唧怼上去,然后就顺着这根管道,你开始往外读数据。

你要往里头写数据呢?反过来,咣唧一根管道怼上去,从管道这一头开始咵唧咵唧往里头灌水。

除了你可以从文件读写数据呢,你还可以从网络,比如这根管道咵唧从我机器上怼到你机器上了,我说一句话,你那边就收着了。你说一句话我这边就收着了。OK?

 

 有的时候一根管道不够使,比方说这根管道读过来的水,里有杂质,外边再包一层管道, 比方说你读过来的数据,最原始的数据肯定是010101,一个字节一个字节的往外读,当你这样读的时候你觉得这样的方法不合适,没关系。外边再包一层强大一点的管道,这个管道可以吧010101转换成字符串,哐当读出来,这个管道就包在了原始管道的外边, 这就是流式的输入输出,这些管道就是java的流。

流的分类:

根据不同的角度分成不同的类型,io包里头定义了所有的流。

输入流or输出流的划分:都是站在程序打的角度来说的,相对于程序来说的。

字节流or字符流:

      字节流:最原始的一个流, 读出来的数据就是010101,只不过是按照字节来读的,一个字节是8位。

      字符流:一个字符一个字符往外读,字符是2个字节。Java里边是Unicode字符串一个字符是2个字节。 Utf16  ok

节点流or处理流:

      节点流:这根管道直接怼到数据源上的流。

      处理流:套在其他管道之上的流。

 凡是以Stream结尾的都是字节流,最原始的读取数据的方式,一个字节一个字节的读。

 

 

转载于:https://www.cnblogs.com/lihaoyang/p/6917929.html

你可能感兴趣的文章
8种传值方式
查看>>
EF的简单认识
查看>>
如何降低死循环的 CPU 占用
查看>>
leetcode 682. 棒球比赛(Baseball Game)
查看>>
Appstore 上传
查看>>
HTML5新增的几个容器模块
查看>>
利用Servlet做一套增删改查
查看>>
linux shell 之 crontab(定时任务)详解
查看>>
linux 远程管理
查看>>
儿童节礼物
查看>>
POJ 1006 同余方程组
查看>>
javascript时间差工具包
查看>>
TCP/IP 基础简介
查看>>
页面中部分标签简单描述
查看>>
GIT 远程仓库
查看>>
[工具]Visual Studio
查看>>
【亲测可行】Dev c++调试、运行报错解决方法总结
查看>>
MySQL Innodb引擎和MyIASM引擎的区别
查看>>
installshield basic msi 更新时覆盖不了上一个版本文件解决方案1
查看>>
15/7/2017 暑期第一次集训小总结
查看>>