我的代码是 -
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文件中。 最后一个问题是,如果文本太大,那么部分文本只会被写入.. 请帮帮我
答案 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。