tnblog
首页
视频
资源
登录
有个性,不需要签名
排名
6
文章
6
粉丝
16
评论
8
{{item.articleTitle}}
{{item.blogName}} : {{item.content}}
ICP备案 :渝ICP备18016597号-1
网站信息:2018-2024TNBLOG.NET
技术交流:群号656732739
联系我们:contact@tnblog.net
欢迎加群交流技术

C#网络流读取(图片)

6794人阅读 2019/3/1 13:24 总访问:227263 评论:1 收藏:0 手机
分类: .NET


         string url = "....";
            Stream stream = WebRequest.Create(url).GetResponse().GetResponseStream();
            const int bufferLen = 512;
            byte[] buffer = new byte[bufferLen];//byte缓存区
            int count = 0; int offset = 0;
            while ((count = stream.Read(buffer, offset, buffer.Length - offset)) > 0) //读取固定长度的流,直到读取完毕
            {
                offset += count;
                if (offset == buffer.Length) //检查是否读取完了,长度想等说明还有内容
                {
                    int nextByte = stream.ReadByte(); //读取下一个字节
                    if (nextByte == -1)
                        break;
                    byte[] newbyte= new byte[buffer.Length * 2]; //还有内容扩大缓存区大小
                    Array.Copy(buffer, newbyte, buffer.Length);
                    newbyte[offset] = (byte)nextByte;
                    buffer = newbyte; //从新指向
                    offset++;
                }
            }
            byte[] bytes= new byte[offset]; //读取完了 就能获得具体长度,再获取长度内的流
            Array.Copy(buffer, bytes, offset);
            return bytes;


网络流无法确定具体长度,一般通过缓存区来一步一步读取



欢迎加群讨论技术,1群:677373950(满了,可以加,但通过不了),2群:656732739

评价