MemoryStream与FileStream
编程访问文件是通过文件流对象进行的,当应用程序需要访问文件时,必须先创建一个文件流对象,此流对象和文件是一一对应关系。 byte[] buffer = new byte[600]; //填充字节数组 private void CreateExampleData() { for (int i = 0; i < 600; i++) { //byte类型的数最大不能超过255,用256取模实现 buffer[i] = (byte)(i % 256); } }
{ //创建测试数据 CreateExampleData(); //创建内存流对象,初始分配50字节的缓冲区 MemoryStream mem = new MemoryStream(50); //向内存流中写入字节数组的所有数据 mem.Write(buffer, 0, buffer.GetLength(0)); MessageBox.Show("写入数据后的内存流长度:" + mem.Length.ToString()); MessageBox.Show("分配给内存流的缓冲区大小:" + mem.Capacity.ToString()); mem.SetLength(550); MessageBox.Show("调用SetLength方法后的内存流长度:" + mem.Length.ToString()); mem.Capacity = 620;//此值不能小于Length属性 MessageBox.Show("调用Capacity方法后缓冲区大小:" + mem.Capacity.ToString()); //将读写指针移到距流开头10个字节的位置 mem.Seek(10, SeekOrigin.Begin); MessageBox.Show(mem.ReadByte().ToString()); mem.Close(); }
这时,无法再设置Capacity属性的大小。 还可以创建只读的内存流对象。 MemoryStream mem = new MemoryStream(buffer,false);
FileStream fsForWrite = new FileStream("test.data", FileMode.Create); try { //写入一个字节 fsForWrite.WriteByte(100); CreateExampleData(); //将字节数组写入文件 fsForWrite.Write(buffer, 0, buffer.GetLength(0)); } catch (Exception ex) { MessageBox.Show(ex.Message); } finally { &nb |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |