【问题标题】:Convert String to System.IO.Stream [duplicate]将字符串转换为 System.IO.Stream [重复]
【发布时间】:2011-12-24 05:27:14
【问题描述】:

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

我试过这个没有成功。

Stream stream = new StringReader(contents);

【问题讨论】:

  • 我不知道 MemoryStream 在 Stream 中是一样的。

标签: c#


【解决方案1】:

试试这个:

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

// convert stream to string
StreamReader reader = new StreamReader(stream);
string text = reader.ReadToEnd();

【讨论】:

  • 谢谢。我不知道 MemoryStream 与 Stream 相同。
  • @xbonez:StreamMemoryStream 不同。 MemoryStream 继承自 Stream,就像 FileStream 一样。所以你可以将它们转换为Stream...
  • 请注意:Streams 实现了 IDisposable,因此您需要在它们周围使用 using 包装器以确保安全。
【解决方案2】:

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

MemoryStream mStrm= new MemoryStream( Encoding.UTF8.GetBytes( contents ) );

MSDN 参考资料:

【讨论】:

    【解决方案3】:
    System.IO.MemoryStream mStream = new System.IO.MemoryStream(System.Text.Encoding.UTF8.GetBytes( contents));
    

    【讨论】:

      【解决方案4】:
      string str = "asasdkopaksdpoadks";
      byte[] data = Encoding.ASCII.GetBytes(str);
      MemoryStream stm = new MemoryStream(data, 0, data.Length);
      

      【讨论】:

      • 使用 ASCII 编码让熊猫难过... :(
      【解决方案5】:

      这是旧的,但需要帮助:

      你也可以使用 stringReader 流

      string str = "asasdkopaksdpoadks";
      StringReader TheStream = new StringReader( str );
      

      【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-08-17
      • 2011-05-18
      • 2017-12-09
      • 2012-07-01
      • 1970-01-01
      • 2019-10-27
      相关资源
      最近更新 更多