如何从MemoryStream中获得一个字符串?
如果给我一个 "MemoryStream",我知道它已经被填充了一个 "String",我怎样才能得到一个 "String "出来?
505
10
如果给我一个 "MemoryStream",我知道它已经被填充了一个 "String",我怎样才能得到一个 "String "出来?
这个例子展示了如何向MemoryStream读写一个字符串。
您也可以使用
我不*认为这样做效率较低,但我不能发誓。 它还可以让你选择不同的编码,而使用StreamReader你必须将其作为参数来指定。
使用StreamReader将MemoryStream转换为一个字符串。
使用一个StreamReader,那么你可以使用ReadToEnd方法,它返回一个字符串。
以前的解决方案在涉及到编码的情况下是行不通的。 这里是-种"现实生活"。
在这种情况下,如果你真的想在 "MemoryStream "中简单地使用 "ReadToEnd "方法,你可以使用这个扩展方法来实现。
而你可以这样使用这个方法。
这个示例展示了如何从MemoryStream中读取字符串,其中,我使用了一个序列化(使用DataContractJsonSerializer),将字符串从一些服务器传递到客户端,然后,如何从作为参数传递的字符串中恢复MemoryStream,然后,反序列化MemoryStream。
我使用了不同帖子中的部分内容来执行这个示例。
希望对你有所帮助。
为什么不在MemoryStream类型上做一个漂亮的扩展方法呢?
当然,在将这些方法与标准方法结合使用时要小心。 :)...如果你这样做,你需要使用那个方便的streamLock,以保证并发性。
Brian'的答案稍加修改后,允许对读开始进行可选的管理,这似乎是最简单的方法。 可能不是最有效的,但很容易理解和使用。