现在的位置: 首页 > 综合 > 正文

.net中对流的分析

2013年03月08日 ⁄ 综合 ⁄ 共 1204字 ⁄ 字号 评论关闭
   流(stream)是一个即使是在日常生活中也经常会遇到的概念。例如,水的流动就形成了水流。与水流相近的概念还有溪流、河流、江流、海流、洋流等;浪的涌动就叫做潮流,后来我们用它来比喻为一种趋势。此外,人的移动就形成了人流(人流还有另一层含义),车的流动就形成了车流,物(商品、产品、材料)的流动就形成了物流,电子的移动形成电流,等等。总之,如果事物持续处于某种运动或者变化的状态,我们就可以将这种运动或变化现象称之为“流”。流又有有序(方向)和无序之分。  
   
  需要注意的是,现实中有很多符合流的概念的现象我们却不能一概称之为流。比如,鸟的迁徙我们不叫“鸟流”,一大群马在草原上飞驰我们可以形容说“万马奔流”,却不可叫“马流”。  
   
  让我们再回到计算机上来看看“流”这个概念。计算机中的流其实是一种信息的转换。它是一种有序流,因此相对于某一对象,通常我们把对象接收外界的信息输入(Input)称为输入流,相应地从对象向外输出(Output)信息为输出流,合称为输入/输出流(I/O   Streams)。对象间进行信息或者数据的交换时总是先将对象或数据转换为某种形式的流,再通过流的传输,到达目的对象后再将流转换为对象数据。所以,可以把流看作是一种数据的载体,通过它可以实现数据交换和传输。  
   
  C/C++中的I/O流是一种面向单个字节的流(字节流),因此对象输出、即对象向流的转化就是将对象的数据转换为字节流(输出流)的过程;而对象输入就是流向对象的转化、即从字节流(输入流)中提取出对象数据的过程。  
   
  >>   在C语言中,外部设备都可以看作是一个文件的是不是?  
   
  不是。外部设备能否作为文件处理取决于操作系统的实现,与语言的实现无关(与外部设备有关的操作一般在C/C++的语言实现中都没有实现标准化)。比如   Unix/Linux   系统把所有的外部设备都作为文件处理,因此对设备的操作和对文件的操作(open、read、write、close等)是一样的,可以使用相同的系统函数调用;但是Windows等其它操作系统却不是这样。   

  流其实就是一个类的对象,很多文件的输入输出操作都以类的成员函数的方式来提供。
计算机中的流其实是一种信息的转换。它是一种有序流,因此相对于某一对象,通常我们把对象接收外界的信息输入(Input)称为输入流,相应地从对象向外输出(Output)信息为输出流,合称为输入/输出流(I/O   Streams)。对象间进行信息或者数据的交换时总是先将对象或数据转换为某种形式的流,再通过流的传输,到达目的对象后再将流转换为对象数据。所以,可以把流看作是一种数据的载体,通过它可以实现数据交换和传输。

C#中默认的字符串(STRING)都是UNICODE的,也就是说不管什么字符,中文、英文、日文……都是采用双字节编码的,LENGTH的值都是双字节数字,要乘2才是实际字节数。

抱歉!评论已关闭.