百科问答小站 logo
百科问答小站 font logo



如何理解编程语言中「流」(stream)的概念? 第1页

  

user avatar   Ivony 网友的相关建议: 
      

流(Stream)就是指像水流一样长长的一串的东西。

在很多时候,流(Stream)是字节流(Byte Steram)的简称,也就是长长的一串字节,,,,

当然,除了字节流,我们还可以有视频流、音频流、数据流,,,,


流只有一个特征就是连续,流可以没有头可以没有尾,甚至可能没有绝对的位置(因为无头无尾),但是由于流是连续的,所以有相对位置。


流是一个很抽象的概念,只有多用才能理解。

但是流绝对不是一个容器,这是一个典型的误解。容器可以被视为一个流,或者可以用流的方式来读写,但流不是容器。

譬如说,网络流(NetworkStream)就不是一个容器,也正因为流不是一个容器,所以流不存在拷贝。我们可以拷贝文件,拷贝内存,但是不能拷贝一个流。

同理,标准输入输出流显然也不是容器。


如果是说.NET Framework中的Stream对象,其实我觉得他更像一个设备(Device)。这个设备提供或者不提供三个方法:读(Read )、写(Write)、检索(Seek),但是一个设备必须至少提供读或者写中的一个方法。




  

相关话题

  准大一,零基础自学C语言,有什么简单易懂的自学书籍和课程推荐吗? 
  C 语言执行 a=a++; 后,a 的值应该加一还是不变? 
  C语言初学者,想问下面这个代码哪里不对,为什么运行不了呢? 
  jdk9为何要将String的底层实现由char[]改成了byte[]? 
  如何修改shared_ptr智能指针,让他支持多线程? 
  初一就学会了五种编程语言算不算超越同龄人呢? 
  C语言编译器哪个好用? 
  两年嵌入式C语言编程经验,如果有机会做和 Android 相关的 C++、JAVA,还有 Javascript 脚本开发工作,转过去好吗? 
  假如我写出了一种秒杀之前所有编程语言各种性能的语言会怎么样? 
  在编程中有没有巧妙运用数学知识解决过问题? 

前一个讨论
如何看待 .NET Native,真能达到 C++ 的性能、C# 的生产效率吗?
下一个讨论
有哪些好的C#开源项目推荐?





© 2025-03-28 - tinynew.org. All Rights Reserved.
© 2025-03-28 - tinynew.org. 保留所有权利