【C#】stream读取
来源:互联网 发布:苹果数据漫游 编辑:程序博客网 时间:2024/05/22 08:00
- public static byte[] Read2Buffer (Stream stream, int BufferLen){
- // 如果指定的无效长度的缓冲区,则指定一个默认的长度作为缓存大小
- if (BufferLen < 1){
- BufferLen = 0x8000;
- }
- // 初始化一个缓存区
- byte[] buffer = new byte[BufferLen];
- int read=0;
- int block;
- // 每次从流中读取缓存大小的数据,知道读取完所有的流为止
- while ( (block = stream.Read(buffer,
read, buffer.Length-read)) > 0){- // 重新设定读取位置
- read += block;
- // 检查是否到达了缓存的边界,检查是否还有可以读取的信息
- if (read == buffer.Length){
- // 尝试读取一个字节
- int nextByte = stream.ReadByte();
- // 读取失败则说明读取完成可以返回结果
- if (nextByte==-1){
- return buffer;
- }
- // 调整数组大小准备继续读取
- byte[] newBuf = new byte[buffer.Length*2];
- Array.Copy(buffer, newBuf, buffer.Length);
- newBuf[read]=(byte)nextByte;
- buffer = newBuf;// buffer是一个引用(指针),
这里意在重新设定buffer指针指向一个更大的内存- read++;
- }
- }
- // 如果缓存太大则使用ret来收缩前面while读取的buffer,然后直接返回
- byte[] ret = new byte[read];
- Array.Copy(buffer, ret, read);
- return ret;
- }
转自:http://developer.51cto.com/art/200908/145675.htm
- 【C#】stream读取
- C++stream
- C#从文件读取 Stream
- C Stream 续
- C#stream学习
- 用ADODB.Stream代替FSO读取文本文件
- 用ADODB.Stream代替FSO读取文本文件
- 用ADODB.Stream代替FSO读取文本文件
- 用ADODB.Stream代替FSO读取文本文件
- 读取 显示 jpeg stream 视频流
- 对有关对Stream读取的问题
- C stream XML parser: expat
- Stream
- stream
- stream
- Stream
- stream
- stream
- VS2008 + WTL8 + VisualFC 环境配置
- POJ 2255
- C和C++中const关键字的区别
- C++类数据成员的初始化
- OpenGL Bezier曲线及曲面生成
- 【C#】stream读取
- Archlinux下配置Android开发环境
- 金三角历史梗概
- jQuery-text()与val()方法区别
- ACM中无输入结束提示时如何判断到达EOF
- RedHat Linux9.0安装心得
- Eclipse 相关资源及网址
- jQuery-focus()和blur()方法-文本框单击字体消失及移开灰色显示
- javascript软键盘demo