I am trying to save a file using DialogResult and StringBuilder. After making the text, I am calling the following code to save the file:
if (dr == DialogResult.OK)
{
StreamWriter sw = new StreamWriter(saveFileDialog1.FileName);
sw.Write(sb.ToString());
sw.Close();
}
I tried to add the second parameter to StreamWriter as Encoding.UTF8 but since the first argument is a string rather than a Stream, it does not compile it.
How can I convert that string to a stream to be able to pass the second parameter as Encoding?
The reason for this, is that somewhere in my text I have µ but when the file is saved it shows like μ so the µ is getting screwd!
Thanks
Just wrap it in a
FileStream.If you want to append, use
FileMode.Appendinstead.You should also call
Dispose()on atry/finallyblock, or use ausingblock to dispose the object when it exceeds theusingscope:This will properly close and dispose the streams across all exception paths.
UPDATE:
As per JinThakur’s comment below, there is a constructor overload for
StreamWriterthat lets you do this directly:The second parameter specifies whether the
StreamWritershould append to the file if it exists, rather than truncating it.