您的位置:程序门 -> .net技术 -> c#



怎么把stream转成memorystream


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


怎么把stream转成memorystream[已结贴,结贴人:moon15]
发表于:2007-02-12 21:05:59 楼主
public   static   stream   sss(stream   instream)
{
//把instream转成memorystream

}
发表于:2007-02-12 21:26:091楼 得分:0
应该可以直接转,memorystream继承stream的。
memorystream   ss   =   instream   as   memorystream;
发表于:2007-02-12 21:30:022楼 得分:0
流对象这样转换的话,
memorystream   ss   =   instream   as   memorystream;
ss   =   null,无法得到instream流
你可以测试下
发表于:2007-02-12 21:31:033楼 得分:0
c#写法:
memorystream   ss   =   new   memorystream(instream);
发表于:2007-02-12 21:47:034楼 得分:0
楼上我也写错,   不好意思~~`
发表于:2007-02-12 22:14:475楼 得分:50
不可能直接转的,需要从stream把数据读出来,写入memorystream。

memorystream   ms   =   new   memorystream();
byte[]   buffer   =   new   byte[1024];

while(true)   {
        int   sz   =   instream.read(buffer,   0,   1024);
        if   (sz   ==   0)   break;
        ms.write(buffer,   0,   sz);
}
ms.position   =   0;
return   ms;
发表于:2007-02-13 09:13:466楼 得分:0
stream   是抽象的
而memorystream   是继承stream的
如果   你的instream是通过memorystream创建(或转化)的话是可以的,但是要instream是别的类型流的话就不行了
在函数中加上
if(instream   is   memorystream)
{
        memorystream   ss   =   instream   as   memorystream;
}
else
{
        throw   new   exception(ms.gettype().tostring());
}


快速检索

最新资讯
热门点击