代码之家  ›  专栏  ›  技术社区  ›  Billy ONeal IS4

如何从流阅读器或流编写器分离流?

  •  5
  • Billy ONeal IS4  · 技术社区  · 14 年前

    我有一个类,它接受一个流作为输入(在构造函数中)。它通过各种方法显示此流中的内容。

    但是,我不希望我的对象负责关闭流——这应该是调用方的责任。因此,我需要关闭类中的streamreader,但无法关闭底层流。

    这有可能吗?

    2 回复  |  直到 14 年前
        1
  •  3
  •   SLaks    14 年前

    StreamReader S的设计目的是获得底层流的完整和唯一所有权。

    尤其是, 流读出器 将在流中任意提前读取以填充内部缓冲区。(这咬了我一次)

    如果需要共享流,您可能不应该使用 流读出器 完全。

        2
  •  4
  •   Joel Coehoorn    14 年前

    关闭StreamReader将关闭基础流。这是不可能的。然而, 只有 您需要关闭StreamReader的原因是,基础流也将关闭。其余的都是托管代码。这意味着你可以放弃你的流阅读器,一切都应该是好的-假设你的呼叫者记得关闭他们的流,因为他们应该。