我不確定我在做什麼錯誤,看過很多示例,但似乎無法得到此工作。使用StreamWriter寫入MemoryStream返回空
public static Stream Foo()
{
var memStream = new MemoryStream();
var streamWriter = new StreamWriter(memStream);
for (int i = 0; i < 6; i++)
streamWriter.WriteLine("TEST");
memStream.Seek(0, SeekOrigin.Begin);
return memStream;
}
我做這個方法簡單的測試,試圖讓它通過,但不管是什麼,我的收藏數爲0
[Test]
public void TestStreamRowCount()
{
var stream = Foo();
using (var reader = new StreamReader(stream))
{
var collection = new List<string>();
string input;
while ((input = reader.ReadLine()) != null)
collection.Add(input);
Assert.AreEqual(6, collection.Count);
}
}
注:我改變上述的一些語法,而不在Test方法中編譯。更重要的是第一個方法似乎是返回一個空的流(我的reader.ReadLine()總是讀取一次)。不知道我做錯了什麼。謝謝。
我不同意將其轉換爲一個數組。一個MemoryStream可以作爲普通的Stream,大多數時候它的消費者並不關心它的實現。很多時候在生產期間使用MemoryStream進行測試和生成文件流時,例如 – 2011-04-13 17:22:23
出於我的目的,我確實想要返回Stream。出於同樣的原因馬特上面提到。沖洗StreamWriter是我錯過了。謝謝。 – jsmith 2011-04-13 17:33:11
我知道這是一個古老的帖子。但它救了我。謝謝:) – Andrew 2017-05-22 11:36:50