java中的流到底是什么(java中的流化是什么意思)

Java中的“流”其实是一个抽象的概念,很难去具象描述。其实这个概念并不单纯存在于Java之中,而是广泛存在计算机科学领域中。从编程的角度来讲,几乎所有的高级编程语言都存在“流”这个概念。

我们可以借助一些现实生活中比较熟悉的事物来理解“流”这个概念。

首先这一说法是翻译字英语单词“stream”的,这个单词在做名词解释的时候,通常都是指水流、河流、溪流等。在做动词解释的时候,就有“流动”的意思。

转换到Java或其它编程语言当中,它其实指的是“数据流”、“数据的流动”这一概念。最常见的使用场景就是对计算机中的文件的读写操作了。那么问题又来了,“数据流”到底指的又是什么呢?

举一个最简单的例子,比如隔壁老王刚从网上下载了一部非常具有教育意义的电影,为了不被发现,老王将这部电影从电脑硬盘中剪切,然后复制到自己珍藏的移动硬盘中。

在这个过程中,电影文件的移动其实就构成了“数据流”——想象成一个小水塘里的水,从原来的小坑流向了另外一个小坑。

进一步简单拆解一下,“数据流”还可以简单分为“输入流”和“输出流”。

什么是“输入流”?回到刚才的例子,为了移动电影文件,计算机首先需要知道要移动的是哪个文件。大家知道,计算机中的所有文件其最终形式都是一大串仅仅由“0”和“1”组成的编码,所以计算机必须读取这个文件的所有“0”和“1”编码,才能获得一整个完整的文件。这种读取文件的操作,如果编程去实现的话,就需要用到“输入流”——从文件原本所在的位置,将文件的内容输入到计算机内存中,以便CPU进行处理(这里牵涉到比较基础的计算机原理,有兴趣的同学可以自行研究,或者关注我)。

而当老王打开自己的移动硬盘,用鼠标选择“粘帖”的时候,就会用到“输出流”——CPU会将刚才经由输入流所读取到的电影内容,从内存中写到移动硬盘,即“输出”到移动硬盘中。

无论是输出还是输入,计算机在操作文件或数据的时候,都不是瞬间就能将一个文件一下子处理好的,都是在硬件层面逐个去处理“0”或者“1”的。文件越大,“0”和“1”就越多,这就像是一条由无数个“0”和“1”前后相接所组成的长长的“河流”——这也就是“流”这一概念的来源。

没有提到任何具体编程语言的东西,不知道这个解答能不能帮助到题主。

可以参考原文

***/item/6508122008138547720/?iid=23372928016&app=news_article&timestamp=1516349689&tt_from=copy_link&utm_source=copy_link&utm_medium=toutiao_ios&utm_campaign=client_share

Java中I/O流概述

对于输入流和输出流的基本概念通过下面的图进行说明:

java中的流到底是什么(java中的流化是什么意思)图1

  • 上图是一台机器通过网络读取服务端数据,此图要说明的是流的一些基本概念。在服务器端,数据存储在磁盘上,将磁盘上的数据读取到服务器内存的过程是输入流,服务器通过网络将内存中的数据输出到客户端对于服务器内存来说是输出流。

  • 在单机客户端,通过网络读取数据到内存的过程对于客户端内存是输入流,把读取到内存中的数据写入到磁盘的的过程对于客户端内存是输出流。所以输入流输出流是针对内存来说的。对于输入流就是读取的过程(Read),而输出流就是写的过程(Write)。

  • 根据读写数据方式的不同,流可以分为字节流和字符流。

  • 字节流按照字节的方式读取和写出数据,读写的最小单位是字节,字节流可以读写任何数据。

  • 字符流读写数据的最小单位是一个字符,在Java中一个字符占用两个字节。

  • 字符流只适合读写纯文本数据,如果读取的是图片、视频和二进制文件,需要使用字节流读写。在Java中,所有的字节流都是以Stream结尾,而字符流都是以Reader和Writer结尾。

  • 文件中的信息是由一连串的字节或字符构成的,组成文件的字节序列称为字节流,组成文件的字符序列称为字符流。在Java中根据流的方向可以分为输入流和输出流。输入流是将磁盘上的文件或其它输入设备的数据加载到内存的过程。输出流与输入流相反,是将内存中的数据保存到磁盘文件或其他输出设备。

输入和输出流图解

java中的流到底是什么(java中的流化是什么意思)图2

文件是由字符或字节构成的,如纯文本文件是字符流,二进制文件如图片、视频是字节流。那么将磁盘上的文件加载到内存或再将内存中的数据输出到文件,需要有输入和输出流的支持,那么在Java语言中又把输入流和输出流各分为了两种,字节输入流和字节输出流,字符输入流和字符输出流。

本文来自投稿,不代表天一生活立场,如若转载,请注明出处:http://tiyigo.com/it/41454.html

(0)
上一篇 2023-08-31 16:05
下一篇 2023-08-31 16:09

相关推荐

  • 你中过输入法的毒吗(你被输入法害过最惨的经历)

    本人是百度,或者说点讯,梅花输入法的用户,不能说资深,但也用了10年左右的时间吧,我用双拼,最普遍的那种自然码,在诺基亚全键盘E63上真的可以做到盲打。换了触屏手机,所有的手感都没…

    2023-02-12
  • 如何辨别路由器和猫一体藏有监控

    如何辨别路由器和猫? ★路由器与光猫的区别作用和功能不同、连接方式不同、外形和端口不同。路由器没有光猫转换过来的网络信号插入WAN,是无法扩展LAN口输出信号的,至于说驳接路由器输…

    2023-01-01
  • 如何学好3d绘画,需要掌握几个要领知识

    我认为3D立体画,是视觉结构透视和色彩光影透视的绘画效果,需要作画者在构图时把透视关系搞清楚、根据透视关系合理勾勒轮廓,达到视觉最佳透视效果,其次就是根据透视关系铺设颜色。 要达到…

    2023-03-20
  • 英文文档翻译成中文怎么设置

    可以这样。 1、 如下图所示,小编这里有一篇英文的文章,我们准备将其翻译为中文的 2、 点击菜单栏中的“审核”,打开审核相关的工具栏,点击“语言”,在打开的语言工具中我们可以看到翻…

    2023-05-21
  • 电脑不能上网怎么办(光猫连电脑不能上网)

    你确定就卸载360全家桶?如果就只卸载它的话,那就有可能是连一些系统文件一起卸载掉了,你看一下未知软件的提示框的左上角 类似这种提示的(这张图是系统的程序,不是应用软件,只是举个例…

    2023-03-28
  • ipad有哪些实用小技巧(iphone ipad实用技巧)

    、 使用拇指来输入   一些用户在使用iPad输入文字的时候,习惯将触摸键盘当作pc键盘使用:全部手指放到键盘上来输入。这样做会让手很不舒服(毕竟,iPad的尺寸比PC键盘还是小不…

    电脑教程 2023-01-28
  • 如何学好阿拉伯语,学好阿拉伯语的重要性

    在学习阿拉伯语之前你先了解一下什么是阿拉伯语,这就像你刚买了新产品要阅读一下说明书一样。 阿拉伯语属于闪含语系–闪米特语族-中闪米特语支,使用阿拉伯字母从右至左书写,主…

    2023-05-06
  • 户外团队活动哪里比较好

    一、目前户外俱乐部团队的组织形式主要是户外爱好者自己组织的,可以用鱼目混杂来形容,极少有注册为企业性质的。新组建的或者是经验不足的收费较低,收费较高的往往是经验比较丰富,团队组织能…

    2023-08-15
  • 电脑主机主要由哪几部分组成

    显示器:用来执行显卡的型号模拟图形的执行中心。也就是用来看的屏幕。尺寸大小对整机影响不大。 Cpu:计算机心脏。用来计算命令运算结果。运算速度跟频率挂钩。所以并不是线程多处理器多速…

    电脑教程 2023-01-20
  • 如何让客户在地图上搜到店址

    哈咯~ 本地图忽然出现 相信各位老板们也一定有楼主这样的困扰吧…. 比如在地图上搜索不到自己的店铺 店铺信息老旧,与目前状况不符 无法导航到店 …&#823…

    2023-07-19