c#中的文件字段流

本文关键字:字段 文件 | 更新日期: 2023-09-27 18:16:41

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

c#中的文件字段流

如果你的意思是你需要提供一个流的部分文件(或任何其他流),那么你通常会使用两种方法之一:

  • 创建一个SubStream: Stream类,它封装(装饰)一个内部流,并跟踪有多少数据被读取,并且只允许读取"n"字节(在构造函数中提供),并且一旦读取被消耗,将从read返回0(还记得在读取期间最大请求字节和剩余字节)
  • 编写代码,使其在内部根据某些上限跟踪数据,并且永远不会过度读取

如果你需要将流传递给预先存在的代码/库,第一个是有用的。

在这两种情况下,在我看来,设置流的代码应该考虑"before"数据,而上面的代码只需要考虑不要读取太多数据。

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