C# - MemoryStream

代码:

 1 using System;
 2 using System.Collections.Generic;
 3 using System.ComponentModel;
 4 using System.Data;
 5 using System.Drawing;
 6 using System.Linq;
 7 using System.Text;
 8 using System.Windows.Forms;
 9
10 //
11 using System.IO;
12
13 namespace APPMemoryStream
14 {
15     public partial class Form1 : Form
16     {
17         public Form1()
18         {
19             InitializeComponent();
20         }
21
22         private void Form1_Load(object sender, EventArgs e)
23         {
24
25         }
26
27         private void button1_Click(object sender, EventArgs e)
28         {
29             //将空间中的内容转换成二进制流
30             byte[] data = Encoding.Unicode.GetBytes(this.richTextBox1.Rtf);
31
32             //将二进制文件存储到内存流
33             MemoryStream stream = new MemoryStream(data);
34
35             //设置文件每块发送的长度
36             int sendlen = 1024;
37
38             //获取整个文件的大小
39             long sunlen = (stream.Length);
40
41             //设置文件发送的起始位置
42             int offset = 0;
43
44             //分块获取信息
45             while (sunlen > 0)
46             {
47                 sendlen = 1024;
48
49                 //如果文件没有读取完毕
50                 if (sunlen <= sendlen)
51                 {
52                     sendlen = Convert.ToInt32(sunlen);
53                 }
54
55                 //创建一个1024大小的二进制流
56                 byte[] msgdate = new byte[sendlen];
57
58                 //将字节块读取到内存流,以便于进行其他操作
59                 stream.Read(msgdate, offset, sendlen);
60
61                 //记录下一块的起始位置
62                 sunlen = sunlen - sendlen;
63             }
64         }
65     }
66 }
时间: 2024-10-15 21:38:26

C# - MemoryStream的相关文章

StreamWriter寫入MemoryStream 讀不到數據

1 MemoryStream ms = new MemoryStream(); 2 StreamWriter sw = new StreamWriter(ms, Encoding.Default); sw.AutoFlush = true; 3 sw.WriterLine("....."); 4 . 5 . 6 . 7 byte[] buff = new byte[1024]; 8 int count = ms.Read(buff, 0, 1024); count 始終為0,buff里

c#如何使用MemoryStream和BinaryFormatter进行对象的序列化和返序列化

1 下面是我写的一个序列化的类 public static class ObjSerialize { /// <summary> /// 将对象数组obj序列化,内存中的缓冲区的数据序列化 /// </summary> /// <param name="obj"></param> /// <returns></returns> public static byte[] Serialize(object obj) {

[C#]MemoryStream.Dispose之后,为什么仍可以ToArray()?

目录 概述 MemoryStream分析 总结 概述 事件起因,一哥们在群里面贴出了类似下面这样的一段代码: 1 class Program 2 { 3 static void Main(string[] args) 4 { 5 byte[] buffer = File.ReadAllBytes("test.txt"); 6 MemoryStream ms = new MemoryStream(buffer); 7 ms.Dispose(); 8 Console.WriteLine(m

C# MemoryStream先写后读的奇怪现象

static void Main(string[] args) { MemoryStream ms = new MemoryStream(); BinaryWriter bw = new BinaryWriter(ms); int ix0 = 0x12341314;//注意 int ix1 = 2; bw.Write(ix0); bw.Write(ix1); //bw.Flush(); //bw.Close(); byte[] bes = ms.GetBuffer(); Console.Writ

C#中,MemoryStream在文件资源占用中的应用

在C#开发中,经常遇见资源被占用,无法进行覆盖删除等操作. 以Image类为例,Image.From*方法,都会Lock资源,导致资源无法释放,特别是文件资源. 这时,我们可以先读取文件,然后将文件保存到MemoryStream中,然后再从内存中读取文件.  MemoryStream ms = new MemoryStream();   Image img = Image.FromFile(Path);   img.Save(ms, img.RawFormat);    img.Dispose(

MemoryStream类

MemoryStream 是一个特例,MemoryStream中没有任何非托管资源,所以它的Dispose不调用也没关系.托管资源.Net会自动回收 MemoryStream继承自Stream类.内存流的好处是指针可以晃来晃去,也就是支CanSeek,Position,Seek().任意读其中一段. 在内存流中有必要了解一下SeekOrigin枚举 枚举成员 成员值 描述 Begin 0 指定流的开头. Current 1 指定流内的当前位置. End 2 指定流的结尾. OK,记住了SeekO

解决Unity的 The file &amp;#39;MemoryStream&amp;#39; is corrupted! Remove it and launch 崩溃问题

孙广东   2015.7.30 问题:   在项目平时删除资源或者脚本资源时产生的prefab的脚本引用丢失,特别是在场景scene中丢了解决方式/// 1.又一次Clone项目/// 2.删除项目的 Library 目录(推荐.解决紧急问题)/// 3.使用这个脚本解决全部问题(这个当然推荐了) http://forum.unity3d.com/threads/editor-want-to-check-all-prefabs-in-a-project-for-an-attached-monob

C#字符串string和内存流MemoryStream及比特数组byte[]

原文:http://hi.baidu.com/endyli/item/7bf074945de35e1f934f41fe 定义string变量为str,内存流变量为ms,比特数组为bt 1.字符串转比特数组 (1)byte[] bt=System.Text.Encoding.Default.GetBytes("字符串"); (2)byte[] bt=Convert.FromBase64String("字符串"); 2.字符串转流 (1)MemoryStream ms=

The file &#39;MemoryStream&#39; is corrupted! 的解决办法

The file 'MemoryStream' is corrupted! Remove it and launch unity again! [Position out of bounds! 20 > 16] 有时候我们会遇到这个报错,然后整个U3D就崩溃了,原因是在于某些Prefabs的脚本引用丢失了,这个时候,只要把项目的所有丢失引用的Prefabs问题都解决了就OK了. 那么问题来了,有几万个Prefab也手动去解决吗,不!这里有个方便你检查丢失引用的脚本,用这个就可以检查出所有的丢失P