2011-05-28 63 views
3

下面的代码尝试用一些简单的文本填充message字节数组,直到填充缓冲区。如何找出内存流是否被正确填充

byte[] message = new byte[1024]; 

using (MemoryStream memoryStream = new MemoryStream(message, true)) 
    { 
     using (StreamWriter streamWriter = new StreamWriter(memoryStream, Encoding.ASCII)) 
     { 
      while (???) 
       streamWriter.WriteLine("Hello World!"); 
     } 
    } 

while(???)声明中应该包含什么内容?

回答

4
byte[] message = new byte[1024]; 
using (MemoryStream memoryStream = new MemoryStream(message, true)) 
{ 
    using (StreamWriter streamWriter = new StreamWriter(memoryStream, Encoding.ASCII)) 
    { 
     var lineToAdd = "Hello World!"; 
     while (memoryStream.Length - memoryStream.Position > lineToAdd.Length) 
     { 
      streamWriter.WriteLine(lineToAdd); 
      streamWriter.Flush(); 
     } 
    } 
} 

OR

using (MemoryStream memoryStream = new MemoryStream(message, true)) 
using (StreamWriter streamWriter = new StreamWriter(memoryStream, Encoding.ASCII)) 
{ 
    streamWriter.AutoFlush = true; 
    var lineToAdd = "Hello World!"; 
    while (memoryStream.Length - memoryStream.Position > lineToAdd.Length) 
     streamWriter.WriteLine(lineToAdd); 
}