Redirect .NET StreamWriter output to a String variable

Eric picture Eric · Oct 24, 2008 · Viewed 40.6k times · Source

I'd like to know if it is possible to redirect StreamWriter output to a variable

Something like

String^ myString;
StreamWriter sw = gcnew StreamWriter([somehow specify myString])
sw->WriteLine("Foo");

then myString will contain Foo. The reason I would like to do this is to reuse a complex function. I should probably refactor it into a String returning function but it still would be a nice hack to know

Answer

Ely picture Ely · Oct 24, 2008

You can do this with a StringWriter writing the value directly to a string builder object

StringBuilder sb = new StringBuilder();
StringWriter sw = new StringWriter(sb);
// now, the StringWriter instance 'sw' will write to 'sb'