流(stream)如何理解?
前言
如果你搜索输入输出函数,那么你会看到各种各样的流。那么这个流到底是什么东西呢,本文将形象地类比介绍通用的流。
怎样理解通用的流
流,顾名思义就是像水流一样可以流动的事物,可以在不同的领域来去自如的事物。
请想象下面一个场景,你是一名程序员:
- 星期一,老板让你写程序,写完以后让你用电脑展示给他看
- 星期二,老板又让你写程序,写完以后用打印机打印给他看。
- 星期三,老板还让你写程序,写完以后用录音机播放给他听。
- 星期四,老板还是让你写程序,写完让你做单片机展示给他看。
- 星期五,老板又又又让你写程序,写完让你刻成光碟给他看。
- 星期六,老板不停地让你写程序,写完让你做个机器人给他看展示。
- 星期天,你猝死在家中...
为了满足老板的需求,你不仅会用电脑写代码,还会用打印机、会放录音机、会做单片机、会刻光碟、甚至还地要去学习如何造机器人!想想都要疯了。
身为一个程序员,不仅要在电脑上写出程序,还要费尽心机地学会这么多技能,再辛辛苦苦地把你写的程序改成在相应的设备能运行的版本,那这个程序员当的也太累了。
于是,神秘人出现了,他总结了stream流,他规定:信息技术所有相关领域都必须以流的形式输出数据,信息技术所有相关领域的相关设备都要以流的形式读取数据。
自此以后,所有的程序员便只要在电脑上写程序就可以了,写完以后就变成了流,这股流流到了打印机,就能直接打印;流到了录音机,就能直接播放;流到了机器人,机器人就能直接开始活蹦乱跳了...就像这样:
这一股数据流,在各个领域内游刃,作为某个领域的工作者,只要掌握相应领域内的技能,就可以让自己的作品在多个领域中都能展露风采。
因此,你可以将流理解为一种格式,亦或是以这种格式存储的数据,很多信息技术相关的领域对于数据的输入输出,都需要这种格式或以这种格式存储的数据。多数情况下不需要用户主动将数据转换成流。
PS: 以上故事只是为了方便理解,其内容纯属博主瞎编,真正的stream流要比上文定义的复杂的多,现实中的老板也没有那么苛刻...
感谢您的阅读与耐心~ 如有错误或更为恰当的表示方式烦请指出~ 谢谢~
流(stream)如何理解?的更多相关文章
- nodeJS之流stream
前面的话 当内存中无法一次装下需要处理的数据时,或者一边读取一边处理更加高效时,我们就需要用到数据流.NodeJS中通过各种Stream来提供对数据流的操作.本文将详细说明NodeJS中的流strea ...
- Java - 17 Java 流(Stream)、文件(File)和IO
Java 流(Stream).文件(File)和IO Java.io包几乎包含了所有操作输入.输出需要的类.所有这些流类代表了输入源和输出目标. Java.io包中的流支持很多种格式,比如:基本类型. ...
- 流Stream 文件File 流IO
Java 流(Stream).文件(File)和IO Java.io 包几乎包含了所有操作输入.输出需要的类.所有这些流类代表了输入源和输出目标. Java.io 包中的流支持很多种格式,比如:基本类 ...
- 20180803-Java 流(Stream)、文件(File)和IO
Java 流(Stream).文件(File)和IO 下面的程序示范了用read()方法从控制台不断读取字符直到用户输入"q". // 使用BufferedReader 在控制台读 ...
- [转]as3事件流机制彻底理解
题记: 看过网上一些as3事件流的教程,觉得大多都讲得不甚清楚,让人不能直观的理解事件流.而这篇教程以将事件流过程比喻成捕鱼过程,形象简单. 在此基础上对于as3事件流总算有了全面的理解.事件流机制说 ...
- JAVA基础知识之IO——IO流(Stream)的概念
Java IO 流 Java将不同的设备或载体(键盘.文件.网络.管道等)的输入输出数据统称为"流"(Stream),即JAVA的IO都是基于流的. JAVA传统的所有流类型类都包 ...
- [Linux] 流 ( Stream )、管道 ( Pipeline ) 、Filter - 笔记
流 ( Stream ) 1. 流,是指可使用的数据元素一个序列. 2. 流,可以想象为是传送带上等待加工处理的物品,也可以想象为工厂流水线上的物品. 3. 流,可以是无限的数据. 4. 有一种功能, ...
- 【stanford C++】字符串(String)与流(Stream)
字符串(String)与流(Stream) 一.C++中字符串(String) 字符串(String):就是(可能是空的)字符序列. C++中的字符串在概念上和Java中的字符串类似. C++字符串用 ...
- c#中字节数组byte[]、图片image、流stream,字符串string、内存流MemoryStream、文件file,之间的转换
字节数组byte[]与图片image之间的转化 字节数组转换成图片 public static Image byte2img(byte[] buffer) { MemoryStream ms = ne ...
- Java笔记:Java 流(Stream)、文件(File)和IO
更新时间:2018-1-7 12:27:21 更多请查看在线文集:http://android.52fhy.com/java/index.html java.io 包几乎包含了所有操作输入.输出需要的 ...
随机推荐
- [编程基础] Python装饰器入门总结
Python装饰器教程展示了如何在Python中使用装饰器基本功能. 文章目录 1 使用教程 1.1 Python装饰器简单示例 1.2 带@符号的Python装饰器 1.3 用参数修饰函数 1.4 ...
- Redis-03 Redis事务
需要特别注意,Redis 的命令是原子性的,而 Redis 的事务是非原子性的 事务相关命令 MULTI 命令 开启事务命令,Redis将操作命令逐个放到队列中,根据EXEC命令来原子化执行命令 EX ...
- Go+beego接入OSS上传
路由 f, h, err := c.GetFile("uploadFile") if err != nil { logx.Error("getfile err " ...
- [C++]union联合体总结
特点一:成员公用内存,且按所占内存最大的数据成员分配内存 //举例1 union A{ char a;//1个字节 int b;//4个字节 char c;//1个字节 } cout<<s ...
- [阿里云]Datahub测试使用记录
由于需要测试阿里云Datahub功能,因此测了一下Datahub的一些功能 DATAHUB: 简介: 阿里云的流式数据(streaming)处理平台 对流式数据的发布(publish)订阅(subsc ...
- webpack动态配置多静态资源路径,动态配置多上线路径,配置less,多种图片引用方式----"webpack": "^4.41.6",
1.项目场景是有两个静态资源目录,一个用于开发,一个用于发布,上线多个版本,打包多个版本后,也要部署到同一个服务器的同一个端口下. 根据我自己的摸索,我搞出来了下面的配置,自感觉还蛮好用的 先看我的c ...
- 请求的URI过长:414 Request-URI Too Large
问题:在项目中遇到使用get 请求,发现前端传递的参数超过nginx 服务器的限制.三种解决方法(任选一种): 1.在nginx配置文件里面把这两个缓存加大 文件位置:conf/nginx.conf ...
- 关于C#中async/await的用法
一直对c#中async/await的用法模模糊糊,不太清晰,今天写了一下Demo彻底明确一下async/await的用法,以免因为对其不了解而对后期的业务产生影响(比如事务导致的锁表等等). 1. 首 ...
- ThinkPad E580 装Ubuntu系 系统无WIFI 解决办法
首先得下载 最新的驱动,我之前因为自己的下载的驱动不够新,导致我的驱动一直装不上去 https://github.com/tomaspinho/rtl8821ce 这个是最新的驱动的下载 地址,建议从 ...
- Nginx03 虚拟主机
1 虚拟主机 虚拟主机使用特殊的软硬件技术,把一台运行在因特网上的服务器主机分成一台台"虚拟"的主机,每一台虚拟主机都具有独立的域名,具有完整的Internet服务器(WWW.FT ...