public void Saved()
{
SaveFileDialog sfd = new SaveFileDialog();
sfd.Filter = "文本文档(*.txt)|*.txt|文档(*.doc)|*.doc";
sfd.RestoreDirectory = true;
if(sfd.ShowDialog() == DialogResult.OK)
{
string fileName = sfd.FileName;
SaveFile(fileName);
}
}
public void SaveFile(string fileName)
{
try
{
using (FileStream fs = File.OpenWrite(fileName))
{
using (StreamWriter sw = new StreamWriter((Stream)fs,Encoding.UTF8))
{
sw.Write(sb.ToString());
}
}
}
catch (IOException ex)
{
MessageBox.Show(ex.Message, "Simple Editor", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
}
}
{
SaveFileDialog sfd = new SaveFileDialog();
sfd.Filter = "文本文档(*.txt)|*.txt|文档(*.doc)|*.doc";
sfd.RestoreDirectory = true;
if(sfd.ShowDialog() == DialogResult.OK)
{
string fileName = sfd.FileName;
SaveFile(fileName);
}
}
public void SaveFile(string fileName)
{
try
{
using (FileStream fs = File.OpenWrite(fileName))
{
using (StreamWriter sw = new StreamWriter((Stream)fs,Encoding.UTF8))
{
sw.Write(sb.ToString());
}
}
}
catch (IOException ex)
{
MessageBox.Show(ex.Message, "Simple Editor", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
}
}
另外,也不是非要用StreamWriter using (FileStream fs = File.OpenWrite(fileName))
{
fs.Write(Encoding.UTF8.GetBytes(sb.ToString()), 0, Encoding.UTF8.GetBytes(sb.ToString()).Length);
}写入文件没发现问题
sw.Write(sb.ToString());这句断点看看sb的是否有值,是否在其他地方被修改或者初始化了
FileStream fs = new FileStream("输出.txt", FileMode.Create, FileAccess.Write);
StreamWriter sw = new StreamWriter((Stream)fs, Encoding.UTF8);
sw.Write(sb.ToString());
sw.Flush();
sw.Dispose();
sw.Close();
fs.Dispose();
fs.Close();
用这种方式是可以输出的,且输出的内容跟预测的sb的内容是一样的。为什么用SaveFileDialog就输出是空的呢,纠结了!!!求大神指教啊