您可以創建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