问个比较深的问题。关于Stream

KAI3000 2006-11-05 08:08:18
Stream中的数据是不是持续传递的呢,还是一次性传递的?

就是说在Stream中传递数据的过程中,我可以随时获取已经传递的数据长度?

还是等所有的数据传递完了,才能获得已传递数据长度?
...全文
306 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
KAI3000 2006-11-26
  • 打赏
  • 举报
回复
谢楼上指点。
lizheng__114 2006-11-15
  • 打赏
  • 举报
回复
关注。。。搞不清楚
ParadiseX 2006-11-15
  • 打赏
  • 举报
回复
Stream本身是支持流长度的,但是具体问题要具体对待,正如MSDN对其长度属性定义的那样:
When overridden in a derived class, gets the length in bytes of the stream

StreamReader,StreamWriter这一类的流通过调用其BaseStream属性,后能得到流长度,而对于NetworkStream这样的流,就得不到长度了,另外,StreamReader也能够得到无法得到流的长度,最典型的就是从TcpClient得到流了。
TcpClient流本身是无法得到流长度的,所以其GETSTREAM方法返回的流也是一般付给NetworkStream,但是如果让StreamReader去得到也是可以的。
NetworkStream ns = tcpCLient.GetStream();
StreamReader sr = new StreamReader(tcpCLient.GetStream());

所以还是那句老话,具体问题,具体对待
KAI3000 2006-11-14
  • 打赏
  • 举报
回复
到底听谁的?

又说一次性读取

又说一段段读取。。。。

Little_Ghost 2006-11-13
  • 打赏
  • 举报
回复
循环一段段的读,然后用总长减去每段的长度×段数
scow 2006-11-09
  • 打赏
  • 举报
回复
一次性读到Stream中, 所以position可以设置
KAI3000 2006-11-08
  • 打赏
  • 举报
回复
谢谢。没看到MSDN上有这方面介绍,哪位知道?
juqiang 2006-11-07
  • 打赏
  • 举报
回复
FileStream是一次性的,其他的,不清楚…………楼主看看msdn吧!

17,740

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 .NET Framework
社区管理员
  • .NET Framework社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧