c#savefiledialog保存特定长度的文本

时间:2011-03-04 21:11:29

标签: c# streamwriter savefiledialog

我的代码是 -

Stream myStream;
saveFileDialog1 = new SaveFileDialog();

saveFileDialog1.Filter = "Ticket files (*.tkt)|*.tkt";
saveFileDialog1.FilterIndex = 1;
saveFileDialog1.RestoreDirectory = true;
saveFileDialog1.Title = "Save text Files";

if (saveFileDialog1.ShowDialog() == DialogResult.OK)
{
   myStream = saveFileDialog1.OpenFile();
   if (myStream != null)
   {
       StreamWriter wText = new StreamWriter(myStream);
       string st = gettxt();
       wText.Write(st);
       //wText.WriteLine("sdfsderfsdsf");
       myStream.Close();
    }
}

每当我取消注释Writeline和评论写(st)没有写入... 并且字符串应该是特定长度,然后只有数据保存在tkt文件中。 最后一个问题是,如果文本太大,那么部分文本只会被写入.. 请帮帮我

3 个答案:

答案 0 :(得分:1)

尝试

if (saveFileDialog1.ShowDialog() == DialogResult.OK)
{
   TextWriter tw = new StreamWriter(saveFileDialog1.FileName);
   tw.WriteLine(gettxt());
   tw.Close();
}

希望这有帮助。

答案 1 :(得分:0)

saveFileDialog1 = new SaveFileDialog();

saveFileDialog1.Filter = "Ticket files (*.tkt)|*.tkt";
saveFileDialog1.FilterIndex = 1;
saveFileDialog1.RestoreDirectory = true;
saveFileDialog1.Title = "Save text Files";

if (saveFileDialog1.ShowDialog() == DialogResult.OK)
{
    using (Stream myStream = saveFileDialog1.OpenFile())
    {
        using (StreamWriter wText = new StreamWriter(myStream))
        {
            wText.WriteLine(gettext());
        }
    }
}

答案 2 :(得分:0)

解决问题的方法很少,除了读取文件的应用程序存在问题。请注意,您正在编写.txt文件,它可能不一定与.tkt文件格式兼容。无论看起来如何。例如,该文件将包含一个BOM,在文件开头有3个字节,表示它是一个utf-8格式的文本文件。

您可以尝试更好地诊断问题:

   using (var wText = new StreamWriter(myStream, Encoding.Default)) {
       string st = gettxt();
       wText.Write(st);
       //wText.WriteLine("sdfsderfsdsf");
   }

Encoding参数指定字符应该写在默认代码页中而没有BOM。

相关问题