【问题标题】:Stream from file field in C#从 C# 中的文件字段流式传输
【发布时间】:2011-12-04 11:02:51
【问题描述】:

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

【问题讨论】:

  • “文件字段”是什么意思
  • 文件的一部分。在我的情况下,在文件的“中间”。所以之前的一些数据和之后的一些数据。

标签: c# io filestream


【解决方案1】:

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

  • 创建一个 SubStream :封装(装饰)内部 Stream 并跟踪已读取的数据量的 Stream 类,并且只允许读取“n”个字节(在构造函数中提供),并且从 Read 返回 0一次消耗(还记得在读取期间将请求的字节数和剩余字节数设为最大值)
  • 编写您的代码,使其在内部根据某个上限跟踪数据,并且永远不会过度读取

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-01
    • 1970-01-01
    • 2016-07-28
    • 2012-09-09
    • 1970-01-01
    • 2018-06-07
    相关资源
    最近更新 更多