HttpWebRequest myReq = (HttpWebRequest)HttpWebRequest.Create(strUrl) ;
myReq.Timeout = 3600;
HttpWebResponse HttpWResp = (HttpWebResponse)myReq.GetResponse();
Stream myStream = HttpWResp.GetResponseStream();
下面我想把myStream保存为一个文件,应该使用哪个类的什么方法?
谢谢了,估计这个问题应该很简单,但是我就是不知道。。

解决方案 »

  1.   

    using(FileStream s = File.OpenWrite(...))
    {
     ......
      

  2.   

    FileStream写的是字节,但是我
    int length = 1024;
    char [] Buffer = new char[1024];
    int bytesread = 0;       // 从流读取并将任何数据写入到控制台
    bytesread = sr.Read( Buffer, 0, length);
    while( bytesread > 0 ) 
    {
    // fs.Write( Buffer,0, bytesread);
    bytesread = sr.Read( Buffer, 0, length);
    } // 完成时关闭流
    sr.Close();这个是Char[]类型的
      

  3.   

    参考一下:HttpWebRequest myReq = (HttpWebRequest)HttpWebRequest.Create(strUrl) ;
    myReq.Timeout = 3600;
    HttpWebResponse HttpWResp = (HttpWebResponse)myReq.GetResponse();
    Stream myStream = HttpWResp.GetResponseStream();myStream.Position = 0;byte[] bytes = new byte[(int) myStream.Length];
    int numBytesToRead = (int) myStream.Length;
    int numBytesRead = 0;
    while (numBytesToRead > 0) 
    {
        int n = myStream.Read(bytes, numBytesRead, numBytesToRead);
        if (n==0)
            break;
        numBytesRead += n;
        numBytesToRead -= n;
    }
    myStream.Close();StreamWriter objsw = new StreamWriter("filepath.txt");
    objsw.Write(System.Text.UTF8Encoding.UTF8.GetString(bytes));
    objsw.Close();
      

  4.   

    我想要保存的文件是一个.swf文件
    楼上的方法我运行抱错
    我修改了一下变成
    HttpWebRequest myReq = (HttpWebRequest)HttpWebRequest.Create(strUrl) ;
    myReq.Timeout = 3600;
    string filepath = @"E:\SWF";
    int start = strUrl.LastIndexOf("/",strUrl.Length);
    string filename = strUrl.Substring(start,strUrl.Length - start); HttpWebResponse HttpWResp = (HttpWebResponse)myReq.GetResponse();
    // Stream myStream = HttpWResp.GetResponseStream(); StreamReader sr = new StreamReader(HttpWResp.GetResponseStream(),System.Text.Encoding.Default);
    StreamWriter sw = new StreamWriter(filepath+filename);
    sw.Write(sr.ReadToEnd());
    sw.Close();
    sr.Close();
    但是保存下来的和FlashGet下来的不一样大
    不知道为什么?
      

  5.   

    把编码换成ASCII以后大小相同但是无法打开
      

  6.   

    换了其他的编码都有异常。。
    其他信息: 在索引 192 处发现无后续低代理项的高代理项字符。输入可能不在此编码内,或者可能不包含有效的 Unicode (UTF-16)字符。
    http://www.vlike.com/v.asp?vlikeflash/200512/dh/1941_shuijingzhilian.swf
    Flash地址是上面这个,谁能写个小程序把这个保存下来的?
      

  7.   

    如果是.swf文件的话怎么可以用Writer呢?不是文本格式,而是二进制格式。要用FileStream。把char[]改成byte[]。
      

  8.   

    你给的地址是一个asp,这才是真正的吧?
    http://www.vlike.com/vlikeflash/200512/dh/1941_shuijingzhilian.swf用FlashGet就行了。
      

  9.   

    用StreamWriter.Write可以写char[]!
    比如你要写的文件为1.txt
    StreamWriter sw = new StreamWriter("1.txt");
    char[] buffer = new char[1024];
    sw.Write(buffer,0,1024);
    sw.Close();
    就可以了
      

  10.   

    byte[] bytes = new byte[(int) myStream.Length];
    异常,此流不支持查询操作
      

  11.   

    hainang1234(鼠·神·泪) 
    地址哪个是无所谓的,http://www.vlike.com/v.asp?vlikeflash/200512/dh/1941_shuijingzhilian.swf这个地址一样返回整个Flash的数据流,就是不知道用哪个类来保存那个接收的Stream
    因为myStream不支持查询操作。