내가 뭘 잘못하고 있는지, 많은 예제를 보았지만 잘 작동하지 않는 것 같지 않습니다.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은 단순한 스트림으로 작동 할 수 있으며, 대부분의 경우 소비자는 자신의 구현을 신경 쓰지 않습니다. 예를 들어 –
과 같이 테스트하는 동안 MemoryStream을 사용하고 제작 중에 파일 스트림을 사용하는 경우가 많습니다. 제 목적 상 스트림을 반환하려고합니다. 위에서 언급 한 매트와 같은 이유 때문입니다. StreamWriter를 비우는 것은 제가 빠뜨린 것입니다. 고맙습니다. – jsmith
나는 이것이 고대의 지위임을 안다. 하지만 방금 날 구해 줬어. 감사합니다 :) – Andrew