快速获取MemoryStream内容为ASCII字符串的方法

11 c# string memorystream bytearray .net-4.0

我在MemoryStream中有一个JSON字符串.我使用以下代码将其作为ASCII字符串输出:

MemoryStream memstream = new MemoryStream(); 
/* Write a JSON string to memstream here */

byte[] jsonBytes = new byte[memstream.Length];
memstream.Read(jsonBytes, 0, (int)memstream.Length);

string jsonString = Encoding.ASCII.GetString(jsonBytes);
Run Code Online (Sandbox Code Playgroud)

什么是更短/最短的方式?

Dar*_*rov 18

您可以使用ToArray方法:

using (var stream = new MemoryStream())
{
    /* Write a JSON string to stream here */

    string jsonString = Encoding.ASCII.GetString(stream.ToArray());
}
Run Code Online (Sandbox Code Playgroud)


Ili*_*a G 5

new StreamReader(memstream, Encoding.ASCII).ReadToEnd()

  • 如果先前已将流读取到末尾,则将返回空白流.要修复,请使用"bodyStream.Seek(0,SeekOrigin.Begin);"作为前缀.或者只是"memstream.Position = 0". (2认同)