流(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 包几乎包含了所有操作输入.输出需要的 ...
随机推荐
- [常用工具] 基于psutil和GPUtil获取系统状态信息
本文主要介绍在Python3中利用psutil库获取系统状态,利用GPUtil获取gpu状态. psutil (process and system utilities)(进程和系统实用程序)是一个跨 ...
- 问一个 Windows 窗口的 Capture 问题
好久没写了,上来先问一个问题...羞射... 有 A.B 两个窗口,A 是 B 的 Owner,B 不激活不抢焦点.在 B 的 WM_LBUTTONDOWN 的时候,设置 A 窗口为 Capture: ...
- [C#]关于逆变与协变的基本概念和修饰符in与out的意义
协变与逆变的概念 假如两个类型X和Y具有特殊关系,X类型的每个值都能转换成Y类型.我们将I<X>向I<Y>的转换称为协变转换.反之我们将I<Y>向I<X> ...
- Java List集合排序
二维 List 自定义排序 使用lambda表达式 import java.util.*; public class Main { public static void main(String[] a ...
- djiango框架推导过程,jinja2模板语法,jiango简介,基本操作命令
djiango框架推导过程,jinja2模板语法,jiango简介,基本操作命令 一.web框架前戏 web 框架可以理解为是基于会联网的web服务端>>>socket服务端 1.w ...
- 性能浪费的日志案例-使用Lambda优化日志案例
性能浪费的日志案例 注:日志可以帮助我们快速的定位问题,记录程序运行过程中的情况,以便项目的监控和优化.一种典型的场景就是对参数进行有条件使用,例如对日志消息进行拼接后,在满足条件的情况下进行打印输出 ...
- Django-Ajax、form组件
1.Ajax 1.AJAX:不是新的编程语言,而是一种使用现有标准的新方法,我们目前学习的是jQuery版本.特点:异步提交,局部刷新. 2.AJAX 最大的优点是在不重新加载整个页面的情况下,可以与 ...
- DNA
思路一: 这题需要桶+哈希(简化版像A 1 B 2 ......) 具体: 先把数据输入 再枚举可能的右端点,再由右端点得到左端点(l和r相差k) 在 l到r 区间内将这一段区间哈希成一个4进制数 ...
- P34_数据请求 - GET和POST请求
网络数据请求 小程序中网络数据请求的限制 出于安全性方面的考虑,小程序官方对数据接口的请求做出了如下两个限制: 只能请求 HTTPS 类型的接口 必须将接口的域名添加到信任列表中 配置 request ...
- JavaScript基础练习
练习:99乘法表 99乘法表 \3cbr> td { } i++) { }