将String转换为System.IO.Stream

xbo*_*nez 143 c#

我需要将String转换为System.IO.Stream类型以传递给另一个方法.

我没试成功.

Stream stream = new StringReader(contents);
Run Code Online (Sandbox Code Playgroud)

Mar*_*rco 308

试试这个:

// convert string to stream
byte[] byteArray = Encoding.UTF8.GetBytes(contents);
//byte[] byteArray = Encoding.ASCII.GetBytes(contents);
MemoryStream stream = new MemoryStream(byteArray);
Run Code Online (Sandbox Code Playgroud)

// convert stream to string
StreamReader reader = new StreamReader(stream);
string text = reader.ReadToEnd();
Run Code Online (Sandbox Code Playgroud)

  • 只需注意:Streams实现了IDisposable,因此您需要使用它们周围的包装才能安全. (13认同)
  • @xbonez:`Stream`与`MemoryStream`不同.`MemoryStream`继承自`Stream`,就像`FileStream`一样.所以你可以把它们当作"流"...... (3认同)

Yah*_*hia 26

要将字符串转换为流,您需要确定流中的字节应该用哪个编码来表示该字符串 - 例如,您可以:

MemoryStream mStrm= new MemoryStream( Encoding.UTF8.GetBytes( contents ) );
Run Code Online (Sandbox Code Playgroud)

MSDN参考:


San*_*hak 6

System.IO.MemoryStream mStream = new System.IO.MemoryStream(System.Text.Encoding.UTF8.GetBytes( contents));
Run Code Online (Sandbox Code Playgroud)