如果我给一个的MemoryStream
,我知道已经填充了一个字符串
,我怎么得到字符串
背出来?
If I am given a MemoryStream
that I know has been populated with a String
, how do I get a String
back out?
此示例演示如何读取和写入一个字符串到一个MemoryStream。
This sample shows how to read and write a string to a MemoryStream.
static void Main(string[] args)
{
using (var ms = new MemoryStream())
{
var sw = new StreamWriter(ms);
sw.WriteLine("Hello World");
// The string is currently stored in the
// StreamWriters buffer. Flushing the stream will
// force the string into the MemoryStream.
sw.Flush();
// If we dispose the StreamWriter now, it will close
// the BaseStream (which is our MemoryStream) which
// will prevent us from reading from our MemoryStream
//DON'T DO THIS - sw.Dispose();
// The StreamReader will read from the current
// position of the MemoryStream which is currently
// set at the end of the string we just wrote to it.
// We need to set the position to 0 in order to read
// from the beginning.
ms.Position = 0;
var sr = new StreamReader(ms);
var myStr = sr.ReadToEnd();
Console.WriteLine(myStr);
}
Console.WriteLine("Press any key to continue.");
Console.ReadKey();
}