客户端读文件,比如文件100K
每次读1K 
读完后,先传1K 出去
然后继续读该文件
1K读,然后1K 传怎么弄的?
VC 里,是这样的,打开文件,同样100K
1次读1K字节,,传出去然后继续读该文件,,就从该文件2K 的地方读取1K 的内容
依次读取,发送,
最后判一下文件结束标志
即可

解决方案 »

  1.   

    StreamReader.Read(Char[], Int32, Int32) 从 index 开始,从当前流中将最多的 count 个字符读入 buffer
      

  2.   

    把fs改为NetworkStreamvar buffer = new Byte[1024];
    var offset = 0;
    var len = 0;
    using (var fs = File.OpenWrite(filename))
    {
        while ((len = stream.Read(buffer, 0, buffer.Length)) > 0)
        {
            fs.Write(buffer, 0, len);
            offset += len;
        }
    }
      

  3.   

                string FileName = "filename";
                FileStream stream = new FileStream(FileName, FileMode.Open, FileAccess.Read);
                //设置流的当前位置,1024即为1K开始的地方
                stream.Position = 1024;
                //读取1K的内容
                byte[] bytes = new byte[1024];
                stream.Read(bytes, 0, bytes.Length);            stream.Close();
      

  4.   

    谢谢各位
    刚才忘记说了
     我是用silverlight 来做客户端的,和c#也一样的么?
      

  5.   

    string FileName = "filename";
                FileStream stream = new FileStream(FileName, FileMode.Open, FileAccess.Read);
                //设置流的当前位置,1024即为1K开始的地方
                stream.Position = 1024;
                //读取1K的内容
                byte[] bytes = new byte[1024];
                stream.Read(bytes, 0, bytes.Length);            stream.Close();
    再请教一下 打开后,,第一次 调用 stream.Read(bytes, 0, bytes.Length); 读了1K内容 这时不关 stream.close();
     
     继续读,stream.Read(bytes, 0, bytes.Length),是不是就读了 1K 后的,即从第2 K 内容开始的
     1K 内容啊?谢谢
      

  6.   

    是的,你可以查看fs.Postion看下此时的位置是多少
      

  7.   

    每次读取N个字节,Position就会移动多少,下一次读取会从Position处开始。
    和你认为的基本一样
      

  8.   

    silverlight 里,不能用呀很郁闷FileStream stream = new FileStream(FileName, FileMode.Open, FileAccess.Read);
          
    提示:“不允许进行文件操作,拒绝访问”