MemoryStream的GetBuffer报错,无法访问 MemoryStream 的内部缓冲区

问题描述

varm=newMemoryStream(m_temp_bytes,0,length).GetBuffer()

报错:无法访问MemoryStream的内部缓冲区但是换成下面的ToArray就可以varm=newMemoryStream(m_temp_bytes,0,length).ToArray()

为什么呢

解决方案

解决方案二:
GetBuffer是返回MemoryStream内部的buffer,这个的长度也不是stream实际的长度。而ToArray是把内部buffer根据实际长度复制返回的。一般GetBuffer不常用,因为不应该直接操作它的内部数据。MemoryStream只有两个构造方法支持GetBuffer,一个是publicMemoryStream(byte[]buffer,intindex,intcount,boolwritable,boolpubliclyVisible),最后这个参数为true时;另一个是不通过buffer构造,而是使用publicMemoryStream(intcapacity),这种因为不是由外部buffer创建,它可以把内部buffer暴露出来。
解决方案三:
参考msdn:

时间: 2024-11-25 10:05:05

MemoryStream的GetBuffer报错,无法访问 MemoryStream 的内部缓冲区的相关文章

C++连接Mysql数据库,mysql_real_connect总是报错:访问内存冲突

问题描述 C++连接Mysql数据库,mysql_real_connect总是报错:访问内存冲突 C++连接本地Mysql数据库,配置按照网上来的:c/c++使用VS2013连接mysql数据库 访问数据库的代码也是按照网上来的: #include <winsock.h> #include <iostream> #include <string> #include <mysql.h> using namespace std; #pragma comment(

求教telnet连上远程主机后,从远程主机copy文件到本地为何报错“拒绝访问”???

问题描述 求教telnet连上远程主机后,从远程主机copy文件到本地为何报错"拒绝访问"??? 我客户端和服务端都是administrator用户登陆.telnet链接上远程主机后,在远程主机上盘符之间copy都正常,但把远程主机上的文件copy到本地时就报错:"拒绝访问".我感觉是不是我本地的administrator用户的一些什么权限设置之类的问题?或者有哪些本地服务需要启动?该如何解决?求大神指教. 解决方案 看下是不是权限的问题,或者没有连上 解决方案二:

服务器-vs2013发布网站后,报错不能访问

问题描述 vs2013发布网站后,报错不能访问 vs2013本地源代码可以正常访问,发布到服务器上就不能访问了. 服务器上的报错信息是: 分析器错误 说明: 在分析向此请求提供服务所需资源时出错.请检查下列特定分析错误详细信息并适当地修改源文件. 分析器错误消息: 未能生成代码.引发类型为"System.Data.Design.InternalException"的异常. 源错误: 行 1: <?xml version="1.0" encoding="

项目启动问题-web项目启动成功没有报错 但是访问就404

问题描述 web项目启动成功没有报错 但是访问就404 web项目启动成功没有报错 五月 26, 2014 11:15:27 上午 org.apache.tomcat.util.digester.SetPropertiesRule begin 警告: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property 'source' to 'org.eclipse.jst.jee.server:ssm' did no

jsp 访问 java文 件报错

问题描述 jsp 访问 java文 件报错 访问java文件报错如下 访问的java文件如下 跪求 解决方案 空指针了,调试看看哪个对象是null 解决方案二: 空指针异常,你查看调用的对象!我猜应该是业务层,sql语句的拼写大小写 解决方案三: 看看你的rd 是不是空了. 解决方案四: 应该是rd为null,, 解决方案五: rd为空,估计是jsp路径有问题

c#-C#二进制转换为图片报错

问题描述 C#二进制转换为图片报错 System.IO.MemoryStream ms = new System.IO.MemoryStream(data.TP); Image img = Image.FromStream(ms); data.TP是二进制的图片调试的时候报参数无效. ((System.IO.Stream)(ms)).ReadTimeout引发了System.InvalidOperationException类型的异常 ((System.IO.Stream)(ms)).Write

servlets-访问项目报错什么原因?

问题描述 访问项目报错什么原因? 启动tomcat没有报错,访问项目的时候报错请问什么原因 解决方案 往下看,应该是格式错误,空字符串没办法转为int 解决方案二: 两个错 一个是类找不到不能加载 一个是数字格式转换错误 解决方案三: 先把空字符串转换为int这个解决吧. 解决方案四: 一个的classNoFound(类没找到),一个是格式转换异常,然后这两个异常都是出现在Servlets类里面,可能是格式转换异常导致这个类没通过编译,然后没法加载到.先尝试解决格式转换异常看看 解决方案五: 数

IE8 jquery ajax获取静态资源报错TypeError 拒绝访问

1,出现问题的代码: Js代码   /***      * 请求静态html 模板      * @param url      * @param $jqueryDiv : 四个主要div之一      * @param templateHandle : 自定义,用于使用Dot js模板函数      * @param callback : 用于实现模板之后,绑定事件      * @param templateData : cia的返回数据      */      ajaxHtml: fun

SAE Java环境访问https报错:java.security.InvalidAlgorithmPara

使用SAE的Java一直很顺利,在本地Tomcat测试没有问题,上传到SAE后就报这个错,搜索了一下,大体上是指环境方面的问题,这里分享一下. 访问地址: https://api.weibo.com/2/users/show.json 错误信息: java.security.InvalidAlgorithmParameterException: the trustAnchors parameter must be non-empty on Linux, or why is the default