从C#中的文件字段流

时间:2011-12-04 11:02:52

标签: c# io filestream

我有一个函数用流(一个用于输入,另一个用于输出)作为参数。它是加密功能,所以流可以非常大。但是流,那个功能需要的不是一个完整的文件它是文件字段。所以,我怎么能在流中放置文件字段(它可能非常大,所以没有MemoryStreams等)?抱歉我的英语不好。

1 个答案:

答案 0 :(得分:0)

如果您的意思是提供提供文件(或任何其他Stream)的部分的Stream,那么您通常会使用以下两种方法之一:

  • 创建一个SubStream:Stream类,它封装(装饰)一个内部Stream并跟踪已读取的数据量,并且只允许读取“n”个字节(在构造函数中提供),并从Read返回0一旦消耗(也记住Max读取请求的字节数和剩余字节数)
  • 编写代码,使其内部跟踪某些上限的数据,并且永远不会过度读取

如果您需要将该Stream传递给预先存在的代码/库,则第一个非常有用。

在这两种情况下,IMO设置流的代码应该担心“之前”的数据,上面只是担心不会读得太多。

编辑:这是我之前写的:http://protobuf-net.googlecode.com/svn/branches/v1/protobuf-net/SubStream.cs