如何在.Net中将字符串用作流?
时间:2020-03-06 15:02:07 来源:igfitidea点击:
我需要调用一个接受流参数的方法。该方法将文本加载到流中,该流通常是文件。我想简单地用流的内容填充字符串,而不是将其写入文件。我该怎么做呢?
解决方案
查找MemoryStream类
使用StringWriter充当字符串上的流:
StringBuilder sb = new StringBuilder(); StringWriter sw = new StringWriter(sb); CallYourMethodWhichWritesToYourStream(sw); return sb.ToString();
将MemoryStream与StreamReader一起使用。就像是:
using (MemoryStream ms = new MemoryStream()) using (StreamReader sr = new StreamReader(ms)) { // pass the memory stream to method ms.Seek(0, SeekOrigin.Begin); // added from itsmatt string s = sr.ReadToEnd(); }
我们可以执行以下操作:
string s = "Wahoo!"; int n = 452; using( Stream stream = new MemoryStream() ) { // Write to the stream byte[] bytes1 = UnicodeEncoding.Unicode.GetBytes(s); byte[] bytes2 = BitConverter.GetBytes(n); stream.Write(bytes1, 0, bytes1.Length); stream.Write(bytes2, 0, bytes2.Length);
MemoryStream ms = new MemoryStream(); YourFunc(ms); ms.Seek(0, SeekOrigin.Begin); StreamReader sr = new StreamReader(ms); string mystring = sr.ReadToEnd();
是做到这一点的一种方法。