前言

如果你搜索输入输出函数,那么你会看到各种各样的流。那么这个流到底是什么东西呢,本文将形象地类比介绍通用的流。


怎样理解通用的流

流,顾名思义就是像水流一样可以流动的事物,可以在不同的领域来去自如的事物。

请想象下面一个场景,你是一名程序员:

  1. 星期一,老板让你写程序,写完以后让你用电脑展示给他看
  2. 星期二,老板又让你写程序,写完以后用打印机打印给他看。
  3. 星期三,老板还让你写程序,写完以后用录音机播放给他听。
  4. 星期四,老板还是让你写程序,写完让你做单片机展示给他看。
  5. 星期五,老板又又又让你写程序,写完让你刻成光碟给他看。
  6. 星期六,老板不停地让你写程序,写完让你做个机器人给他看展示。
  7. 星期天,你猝死在家中...

为了满足老板的需求,你不仅会用电脑写代码,还会用打印机、会放录音机、会做单片机、会刻光碟、甚至还地要去学习如何造机器人!想想都要疯了。

身为一个程序员,不仅要在电脑上写出程序,还要费尽心机地学会这么多技能,再辛辛苦苦地把你写的程序改成在相应的设备能运行的版本,那这个程序员当的也太累了。

于是,神秘人出现了,他总结了stream流,他规定:信息技术所有相关领域都必须以流的形式输出数据,信息技术所有相关领域的相关设备都要以流的形式读取数据

自此以后,所有的程序员便只要在电脑上写程序就可以了,写完以后就变成了流,这股流流到了打印机,就能直接打印;流到了录音机,就能直接播放;流到了机器人,机器人就能直接开始活蹦乱跳了...就像这样:

这一股数据流,在各个领域内游刃,作为某个领域的工作者,只要掌握相应领域内的技能,就可以让自己的作品在多个领域中都能展露风采。

因此,你可以将流理解为一种格式,亦或是以这种格式存储的数据,很多信息技术相关的领域对于数据的输入输出,都需要这种格式或以这种格式存储的数据。多数情况下不需要用户主动将数据转换成流。

PS: 以上故事只是为了方便理解,其内容纯属博主瞎编,真正的stream流要比上文定义的复杂的多,现实中的老板也没有那么苛刻...

感谢您的阅读与耐心~ 如有错误或更为恰当的表示方式烦请指出~ 谢谢~

流(stream)如何理解?的更多相关文章

  1. nodeJS之流stream

    前面的话 当内存中无法一次装下需要处理的数据时,或者一边读取一边处理更加高效时,我们就需要用到数据流.NodeJS中通过各种Stream来提供对数据流的操作.本文将详细说明NodeJS中的流strea ...

  2. Java - 17 Java 流(Stream)、文件(File)和IO

    Java 流(Stream).文件(File)和IO Java.io包几乎包含了所有操作输入.输出需要的类.所有这些流类代表了输入源和输出目标. Java.io包中的流支持很多种格式,比如:基本类型. ...

  3. 流Stream 文件File 流IO

    Java 流(Stream).文件(File)和IO Java.io 包几乎包含了所有操作输入.输出需要的类.所有这些流类代表了输入源和输出目标. Java.io 包中的流支持很多种格式,比如:基本类 ...

  4. 20180803-Java 流(Stream)、文件(File)和IO

    Java 流(Stream).文件(File)和IO 下面的程序示范了用read()方法从控制台不断读取字符直到用户输入"q". // 使用BufferedReader 在控制台读 ...

  5. [转]as3事件流机制彻底理解

    题记: 看过网上一些as3事件流的教程,觉得大多都讲得不甚清楚,让人不能直观的理解事件流.而这篇教程以将事件流过程比喻成捕鱼过程,形象简单. 在此基础上对于as3事件流总算有了全面的理解.事件流机制说 ...

  6. JAVA基础知识之IO——IO流(Stream)的概念

    Java IO 流 Java将不同的设备或载体(键盘.文件.网络.管道等)的输入输出数据统称为"流"(Stream),即JAVA的IO都是基于流的. JAVA传统的所有流类型类都包 ...

  7. [Linux] 流 ( Stream )、管道 ( Pipeline ) 、Filter - 笔记

    流 ( Stream ) 1. 流,是指可使用的数据元素一个序列. 2. 流,可以想象为是传送带上等待加工处理的物品,也可以想象为工厂流水线上的物品. 3. 流,可以是无限的数据. 4. 有一种功能, ...

  8. 【stanford C++】字符串(String)与流(Stream)

    字符串(String)与流(Stream) 一.C++中字符串(String) 字符串(String):就是(可能是空的)字符序列. C++中的字符串在概念上和Java中的字符串类似. C++字符串用 ...

  9. c#中字节数组byte[]、图片image、流stream,字符串string、内存流MemoryStream、文件file,之间的转换

    字节数组byte[]与图片image之间的转化 字节数组转换成图片 public static Image byte2img(byte[] buffer) { MemoryStream ms = ne ...

  10. Java笔记:Java 流(Stream)、文件(File)和IO

    更新时间:2018-1-7 12:27:21 更多请查看在线文集:http://android.52fhy.com/java/index.html java.io 包几乎包含了所有操作输入.输出需要的 ...

随机推荐

  1. [常用工具] 基于psutil和GPUtil获取系统状态信息

    本文主要介绍在Python3中利用psutil库获取系统状态,利用GPUtil获取gpu状态. psutil (process and system utilities)(进程和系统实用程序)是一个跨 ...

  2. 问一个 Windows 窗口的 Capture 问题

    好久没写了,上来先问一个问题...羞射... 有 A.B 两个窗口,A 是 B 的 Owner,B 不激活不抢焦点.在 B 的 WM_LBUTTONDOWN 的时候,设置 A 窗口为 Capture: ...

  3. [C#]关于逆变与协变的基本概念和修饰符in与out的意义

    协变与逆变的概念 假如两个类型X和Y具有特殊关系,X类型的每个值都能转换成Y类型.我们将I<X>向I<Y>的转换称为协变转换.反之我们将I<Y>向I<X> ...

  4. Java List集合排序

    二维 List 自定义排序 使用lambda表达式 import java.util.*; public class Main { public static void main(String[] a ...

  5. djiango框架推导过程,jinja2模板语法,jiango简介,基本操作命令

    djiango框架推导过程,jinja2模板语法,jiango简介,基本操作命令 一.web框架前戏 web 框架可以理解为是基于会联网的web服务端>>>socket服务端 1.w ...

  6. 性能浪费的日志案例-使用Lambda优化日志案例

    性能浪费的日志案例 注:日志可以帮助我们快速的定位问题,记录程序运行过程中的情况,以便项目的监控和优化.一种典型的场景就是对参数进行有条件使用,例如对日志消息进行拼接后,在满足条件的情况下进行打印输出 ...

  7. Django-Ajax、form组件

    1.Ajax 1.AJAX:不是新的编程语言,而是一种使用现有标准的新方法,我们目前学习的是jQuery版本.特点:异步提交,局部刷新. 2.AJAX 最大的优点是在不重新加载整个页面的情况下,可以与 ...

  8. DNA

    思路一: 这题需要桶+哈希(简化版像A 1  B  2 ......) 具体: 先把数据输入 再枚举可能的右端点,再由右端点得到左端点(l和r相差k) 在 l到r 区间内将这一段区间哈希成一个4进制数 ...

  9. P34_数据请求 - GET和POST请求

    网络数据请求 小程序中网络数据请求的限制 出于安全性方面的考虑,小程序官方对数据接口的请求做出了如下两个限制: 只能请求 HTTPS 类型的接口 必须将接口的域名添加到信任列表中 配置 request ...

  10. JavaScript基础练习

    练习:99乘法表 99乘法表 \3cbr> td { } i++) { }