我们能克隆一个流吗?
public static void CopyStream(Stream input, Stream output)
{
byte[] buffer = new byte[32768];
while (true)
{
int read = input.Read (buffer, 0, buffer.Length);
if (read <= 0)
return;
output.Write (buffer, 0, read);
}
}
Stream
类的通用支持操作。要实现这一点,它必须涵盖Stream
类的所有可能实现。FileStream
这样的项目,这可能是可行的,但考虑一下对于像NetworkStream
这样的项目会意味着什么。克隆通常具有创建完全独立的对象的概念,在创建时这些对象是相同的。然而,对于TCP连接这样的项目来说,这通常是不可行的,因为它们通常被包装在某个级别的NetworkStream
中。不确定您是在流被消耗之前还是之后想要克隆它。如果您需要为其他目的复制流,则这可能会有所帮助。我需要访问已关闭的流的内容,这使我能够将原始流内容复制到另一个流中。 访问已关闭的流。