我需要调用一个接受流参数的方法。该方法会将文本加载到流中,通常是文件。我希望只是填充一个字符串,而不是将其写入文件,以获取流的内容。我该怎么做?
我需要调用一个接受流参数的方法。该方法会将文本加载到流中,通常是文件。我希望只是填充一个字符串,而不是将其写入文件,以获取流的内容。我该怎么做?
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();
}
StringBuilder sb = new StringBuilder();
StringWriter sw = new StringWriter(sb);
CallYourMethodWhichWritesToYourStream(sw);
return sb.ToString();
查找MemoryStream类
MemoryStream ms = new MemoryStream();
YourFunc(ms);
ms.Seek(0, SeekOrigin.Begin);
StreamReader sr = new StreamReader(ms);
string mystring = 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);