新闻资讯
看你所看,想你所想

stream

stream

stream

Stream泛指流媒体技术。流媒体实际指的是一种新的媒体传送方式,而非一种新的媒体,是指採用流式传输的方式在Internet播放的媒体格式。可指大河,也可指小河或小溪,指小溪时与brook,creek同义。creek侧重其狭长蜿蜒,缓缓流动,且多流入大河或湖泊。brook侧重发源于山泉。creek和stream都比brook大。stream还可引申表示事物连绵不断。stream还可作动词,意为“流动,飘动”。常用作不及物动词,也可用作及物动词。

基本介绍

  • 中文名:流媒体技术
  • 外文名:Stream
  • 词性:动词 ,名词
  • 基本解释:泛指流媒体技术

英语单词

动词

基本释义
v. [striːm] ( streams; streamed; streaming )
vt. & vi. 流; 移动 flow freely; move continuously and smoothly in one direction
vi. 飘扬; 招展 float or wave (in the wind)
词语要点
1.stream的基本意思是“流动”,指受限制的流动,如通过一定的路线或出口。也可指大量不断地流动。引申可指“飘动”。
2.stream既可用作及物动词,也可用作不及物动词。用作及物动词时,可接名词或代词作宾语。
3.stream接介词with表示“被…覆盖”。
词语搭配
~+副词
stream torrentially 激流涌进
stream back 向后飘动
stream in 络绎进入
~+介词
stream behind 在…后面飘动
stream down one's cheeks (眼泪)从脸颊流下
stream into the auditorium (人群)络绎不绝进入礼堂
stream out of the station (人群)涌出车站
stream with 被…覆盖
辨析
pour, flow, run, stream
这组词的共同意思是“流”“流动”。其区别是:
1.flow, run, stream和pour都可指液体流动; flow还可指气体流动; pour还可指光线、微粒等倾泻。
2.时间上:flow一般指源源不断地、长时间地流动; run既可以是源源不断地、长时间地流动,也可以是流动一段时间; stream和pour多指短时间地流动。
3.方向上:指液体流动时, flow是水平流动; run和stream既可水平流动,也可垂直流动; pour是垂直流动。
4.流速上:从快到慢依次为pour, stream, run, flow。具体说就是flow是平平稳稳地流动; run比较湍急; stream比run更有力; pour则是“倾泻”。
5.flow, stream和pour常用于比喻, run很少用于比喻。例如:
The river was flowing quietly.河水静静流着。
She let her hair down so that it flew darkly over her shoulders.她让乌黑的头髮披散下来,飘垂到肩上。  The river runs through hills and fields.河水流经山冈和田野。
The water runs out of the pipe into the bucket.水自管内注入水桶中。
Tears were streaming down her face.她脸上热泪滚滚而下。
The students streamed into the auditorium.学生们络绎不绝地进入礼堂。
下面三句话的意思相同:
She poured me a cup of tea.
She poured a cup of tea for me.
She poured me out a cup of tea.
她给我倒了一杯茶。
词源
<古英语stream(流动)

名词

基本释义
C 小河,溪流 a small river
C 流,一股,一串 flow (of liquid, people, things, etc.)
stream-小溪stream-小溪
S 水流方向,潮流 current or direction of sth flowing or moving
C (按能力分的)班级 class or division of a class into which children of the same age and level of ability are placed
C 川流不息 a continuous series of people, things, or events, usually moving in a line or in a certain direction
常见搭配
动词+~
cross a stream 涉过一条小溪
tap a stream 引流
形容词+~
clear〔dancing, quiet, running〕 stream 清澈〔奔腾欢跳,平静,流动〕的溪流
rapid〔strong〕 stream 湍急〔强劲〕的水流
rushing stream 激流
名词+~
mountain stream 山涧
sun streams 太阳光线
介词+~
in streams 连续不断,川流不息
on stream 进行生产,投入生产
up the stream 向〔在〕上游
~+介词
a stream of light 一缕光线
a stream of words 滔滔不绝的话
the stream of history 历史潮流
词语辨析
branch,brook,canal,creek,river,stream,torrent
这组词的共同意思是“流水的通道”。其区别是:
1.除canal指人工开挖的河流或渠道外,其余各词均指自然形成的水道。
2.river和torrent均指流量较大的河流,river可泛指(自然形成的)江河;torrent则特指急流、湍流。这两个词还常用于比喻。
3.stream可指大河,也可指小河或小溪,指小溪时与brook,creek同义。creek侧重其狭长蜿蜒,缓缓流动,且多流入大河或湖泊。brook侧重发源于山泉。creek和stream都比brook大。stream还可引申表示事物连绵不断。
4.branch指江河的支流。
同义词
n. brook, course, flow, rush, streamlet

IT相关

流媒体技术

Stream泛指流媒体技术。
流媒体实际指的是一种新的媒体传送方式,而非一种新的媒体,是指採用流式传输的方式在Internet播放的媒体格式。流媒体技术全面套用后,人们在网上聊天可直接语音输入;如果想彼此看见对方的容貌、表情,只要双方各有一个摄像头就可以了;在网上看到感兴趣的商品,点击以后,讲解员和商品的影像就会跳出来;更有真实感的影像新闻也会出现。

程式语言

程式语言中的stream
重要运算符
在C++,C#,java等程式语言中,有一个stream这个类,所有的I/O都以这个“流”类为基础的,包括我们要认识的档案I/O,stream这个类有两个重要的运算符:
1、插入器(<<)
向流输出数据。比如说系统有一个默认的标準输出流(cout),一般情况下就是指的显示器,所以,cout<<"Write Stdout"<<'n';就表示把字元串"Write Stdout"和换行字元('n')输出到标準输出流。
2、析取器(>>)
从流中输入数据。比如说系统有一个默认的标準输入流(cin),一般情况下就是指的键盘,所以,cin>>x;就表示从标準输入流中读取一个指定类型(即变数x的类型)的数据。
在C++中,对档案的操作是通过stream的子类fstream(file stream)来实现的,所以,要用这种方式操作档案,就必须加入头档案fstream.h。下面就把此类的档案操作过程一一道来。
打开档案
在fstream类中,有一个成员函式open(),就是用来打开档案的,其原型是:
void open(const char* filename,int mode,int access);
参数:
filename: 要打开的档案名称
mode: 要打开档案的方式
access: 打开档案的属性
打开档案的方式在类ios(是所有流式I/O类的基类)中定义,常用的值如下:
ios::app: 以追加的方式打开档案
ios::ate: 档案打开后定位到档案尾,ios:app就包含有此属性
ios::binary: 以二进制方式打开档案,预设的方式是文本方式。两种方式的区别见前文
ios::in: 档案以输入方式打开
ios::out: 档案以输出方式打开
ios::nocreate: 不建立档案,所以档案不存在时打开失败
ios::noreplace:不覆盖档案,所以打开档案时如果档案存在失败
ios::trunc: 如果档案存在,把档案长度设为0
可以用“或”把以上属性连线起来,如ios::out|ios::binary
// 注:现在C++标準库不支持nocreate和noreplace,以前的旧版本可以用.
打开档案的属性取值是:
0:普通档案,打开访问
1:唯读档案
2:隐含档案
4:系统档案
可以用“或”或者“+”把以上属性连线起来 ,如3或1|2就是以唯读和隐含属性打开档案。
例如:以二进制输入方式打开档案c:config.sys
fstream file1;
file1.open("c:config.sys",ios::binary|ios::in,0);
如果open函式只有档案名称一个参数,则是以读/写普通档案打开,即:
file1.open("c:config.sys");<=>file1.open("c:config.sys",ios::in|ios::out,0);
另外,fstream还有和open()一样的构造函式,对于上例,在定义的时候就可以打开档案了:
fstream file1("c:config.sys");
特别提出的是,fstream有两个子类:ifstream(input file stream)和ofstream(outpu file stream),ifstream默认以输入方式打开档案,而ofstream默认以输出方式打开档案。
ifstream file2("c:pdos.def");//以输入方式打开档案
ofstream file3("c:x.123");//以输出方式打开档案
所以,在实际套用中,根据需要的不同,选择不同的类来定义:如果想以输入方式打开,就用ifstream来定义;如果想以输出方式打开,就用ofstream来定义;如果想以输入/输出方式来打开,就用fstream来定义。
关闭档案
打开的档案使用完成后一定要关闭,fstream提供了成员函式close()来完成此操作,如:file1.close();就把file1相连的档案关闭。
读写档案
读写档案分为文本档案和二进制档案的读取,对于文本档案的读取比较简单,用插入器和析取器就可以了;而对于二进制的读取就要複杂些,下要就详细的介绍这两种方式
1、文本档案的读写
文本档案的读写很简单:用插入器(<<)向档案输出;用析取器(>>)从档案输入。假设file1是以输入方式打开,file2以输出打开。示例如下:
file2<<"I Love You";//向档案写入字元串"I Love You"
int i;
file1>>i;//从档案输入一个整数值。
这种方式还有一种简单的格式化能力,比如可以指定输出为16进制等等,具体的格式有以下一些
操纵符 功能 输入/输出
dec 格式化为十进制数值数据 输入和输出
endl 输出一个换行符并刷新此流 输出
ends 输出一个空字元 输出
hex 格式化为十六进制数值数据 输入和输出
oct 格式化为八进制数值数据 输入和输出
//setprecision(int p) 设定浮点数的精度位数 输出
(setpxecision应该为setprecision,使用时需要包含头档案:#include <iomanip.h>)
//比如要把123当作十六进制输出:file1<<hex<<123;要把3.1415926以5位精度输出:file1<<setprecision(5)<<3.1415926。
比如要把123当作十六进制输出:file1<<hex<<123;要把3.1415926以5位精度输出:file1<<setprecision(5)<<3.1415926。
2、二进制档案的读写
①put()
put()函式向流写入一个字元,其原型是ofstream &put(char ch),使用也比较简单,如file1.put('c');就是向流写一个字元'c'。
②get()
get()函式比较灵活,有3种常用的重载形式:
一种就是和put()对应的形式:ifstream &get(char &ch);功能是从流中读取一个字元,结果保存在引用ch中,如果到档案尾,返回空字元。如file2.get(x);表示从档案中读取一个字元,并把读取的字元保存在x中。
另一种重载形式的原型是: int get();这种形式是从流中返回一个字元,如果到达档案尾,返回EOF,如x=file2.get();和上例功能是一样的。
还有一种形式的原型是:ifstream &get(char *buf,int num,char delim='n');这种形式把字元读入由 buf 指向的数组,直到读入了 num 个字元或遇到了由 delim 指定的字元,如果没使用 delim 这个参数,将使用预设值换行符'n'。例如:
file2.get(str1,127,'A');//从档案中读取字元到字元串str1,当遇到字元'A'或读取了127个字元时终止。
③读写数据块
要读写二进制数据块,使用成员函式read()和write()成员函式,它们原型如下:
read(unsigned char *buf,int num);
write(const unsigned char *buf,int num);
read()从档案中读取 num 个字元到 buf 指向的快取中,如果在还未读入 num 个字元时就到了档案尾,可以用成员函式 int gcount();来取得实际读取的字元数;而 write() 从buf 指向的快取写 num 个字元到档案中,值得注意的是快取的类型是 unsigned char *,有时可能需要类型转换。
例:
unsigned char str1[]="I Love You";
int n[5];
ifstream in("xxx.xxx");
ofstream out("yyy.yyy");
out.write(str1,strlen(str1));//把字元串str1全部写到yyy.yyy中
in.read((unsigned char*)n,sizeof(n));//从xxx.xxx中读取指定个整数,注意类型转换
in.close();out.close();
检测EOF
成员函式eof()用来检测是否到达档案尾,如果到达档案尾返回非0值,否则返回0。原型是int eof();
例: if(in.eof())ShowMessage("已经到达档案尾!");
档案定位
和C的档案操作方式不同的是,C++ I/O系统管理两个与一个档案相联繫的指针。一个是读指针,它说明输入操作在档案中的位置;另一个是写指针,它下次写操作的位置。每次执行输入或输出时,相应的指针自动变化。所以,C++的档案定位分为读位置和写位置的定位,对应的成员函式是 seekg()和 seekp(),seekg()是设定读位置,seekp是设定写位置。它们最通用的形式如下:
istream &seekg(streamoff offset,seek_dir origin);
ostream &seekp(streamoff offset,seek_dir origin);
streamoff定义于 iostream.h 中,定义有偏移量 offset 所能取得的最大值,seek_dir 表示移动的基準位置,是一个有以下值的枚举:
ios::beg: 档案开头
ios::cur: 档案当前位置
ios::end: 档案结尾
这两个函式一般用于二进制档案,因为文本档案会因为系统对字元的解释而可能与预想的值不同。
例:
file1.seekg(1234,ios::cur);//把档案的读指针从当前位置向后移1234个位元组
file2.seekp(1234,ios::beg);//把档案的写指针从档案开头向后移1234个位元组
如果vc编程的话最好使用CFile类等更加方便于档案操作</CA>

转载请注明出处海之美文 » stream

相关推荐

    声明:此文信息来源于网络,登载此文只为提供信息参考,并不用于任何商业目的。如有侵权,请及时联系我们:ailianmeng11@163.com