无法访问 MemoryStream 的内部缓冲区
来源:互联网 发布:java写学生管理系统 编辑:程序博客网 时间:2024/05/18 01:36
无法访问 MemoryStream 的内部缓冲区
在处理剪贴板数据时, ms.GetBuffer() 语句出现异常,代码如下:
//检索当前位于系统剪贴板中的数据 IDataObject ido = Clipboard.GetDataObject(); //获取存储在 IDataObject 实例中的数据所关联的或可以转换为的所有格式的列表 String[] fmtList = ido.GetFormats(); //循环输出所有格式的列表 for (int i = 0; i < fmtList.GetLength(0); i++) { String fmt = fmtList[i]; tb_result.Text += fmt + "\r\n"; } String dibFmt = "DeviceIndependentBitmap"; if (fmtList.Contains(dibFmt) && ido.GetDataPresent(dibFmt)) { Object obj = ido.GetData(dibFmt); MemoryStream ms = (MemoryStream)obj; MemoryStream ms2 = new MemoryStream(); //构造固定文件头 byte[] bmpHeader = new byte[] { 0x42, 0x4D, 0x96, 0x86, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x36, 0x00, 0x00, 0x00 }; //将文件头和文件数据写入内存流 ms2.Write(bmpHeader, 0, bmpHeader.Length); ms2.Write(ms.GetBuffer(), 0, ms.GetBuffer().Length);
解决方法:
通过读取的方式获取:
MemoryStream ms = (MemoryStream)obj; byte[] buff = new byte[ms.Capacity]; if (ms.CanRead) { ms.Read(buff, 0, ms.Capacity); }
阅读全文
1 0
- 无法访问 MemoryStream 的内部缓冲区
- 理解Storm内部的消息缓冲区
- 理解Storm内部的消息缓冲区
- MemoryStream的应用
- MemoryStream 的一些例子
- 关于MemoryStream的使用
- MemoryStream
- MemoryStream
- MemoryStream
- MemoryStream
- MemoryStream
- MemoryStream
- 无法访问某高校校园内部WebServer问题的处理
- 关于学校内网无法访问内部网站的问题
- stringstream类内部的缓冲区正确的清空方式
- JAVA NIO学习笔记--缓冲区的内部细节
- NIO缓冲区内部实现机制
- MemoryStream 的GetBuffer() 和 ToArray()的区别
- Oracle 使用analyze分析索引碎片
- 7.Score
- 【Spark】-- 交互式 shell
- 美国交通标志必知
- java网络编程学习之——构建基于多线程的网络通信模型1
- 无法访问 MemoryStream 的内部缓冲区
- Python--UDP时间服务器
- [LintCode]Remove Element(Python)
- 【PostgreSQL-9.6.3】Red Hat 4.4.7下的安装
- java 注解
- C#基础 属性 构造函数 静态构造函数 析构函数
- php 关于isset empty
- c语言内容对齐详解
- php的变量类型数组