您可以创建Stream类的自定义实现在其中红色数据写入客场内存流,或使用我的版本是哪个,可以发现:http://upreader.codeplex.com/SourceControl/changeset/view/d287ca854370#src%2fUpreader.Usenet.Nntp%2fEncodings%2fRecordStream.cs
这可以在使用下列方式:
using (FileStream fileStream = File.Open("test.txt", FileMode.Open))
using (RecordStream recordStream = new RecordStream(fileStream))
{
// make sure we record incoming data
recordStream.Record();
// do something with the data
StreamReader reader = new StreamReader(recordStream);
string copy1 = reader.ReadToEnd();
// now reset
recordStream.Playback();
// do something with the data again
StreamReader reader = new StreamReader(recordStream);
string copy2 = reader.ReadToEnd();
Assert.AreEqual(cop1, copy2);
}
我建立这个类尤其是对网络数据流,但它同样适用与FILESTREAM,它只是不返回
一个简单implem之前首先缓冲在读取文件一次entation将
class RecordStream : Stream
{
public Stream BaseStream { get; }
public MemoryStream Record { get; }
....
public override int Read(byte[] buffer, int offset, int count)
{
int result = BaseStream.Read(buffer, offset, count);
// store it
Record.Write(buffer, offset, count);
return result;
}
}
我也有过类似的要求,所以我开发了一个RecordStream它,如果你告诉它,在内部存储器流保存,由读指令每次结果,并有回放选项。也许它的有用,请参阅:http://upreader.codeplex.com/SourceControl/changeset/view/d287ca854370#src%2fUpreader.Usenet.Nntp%2fEncodings%2fRecordStream.cs – Polity
@Polity:我不知道这是我的正在寻找。我需要同时读取FileStream到网络流和内部MemoryStream。 – rafale