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

Posted

技术标签:

【中文标题】c# savefiledialog 保存特定长度的文本【英文标题】:c# savefilediaglog saving text of specific length 【发布时间】:2011-03-04 21:11:28 【问题描述】:

我的代码是-

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 并评论 write(st) 时,什么都没有写.. 并且字符串应该具有特定的长度,然后只有数据保存在 tkt 文件中。 最后一个问题是,如果文本太大,则只写部分文本.. 请帮帮我

【问题讨论】:

在关闭流之前刷新并关闭流写入器 看起来问题出在gettxt()st 在写入时的值是多少? 需要把整个gettxt()-String写在一行吗? 【参考方案1】:

试试

if (saveFileDialog1.ShowDialog() == DialogResult.OK)

   TextWriter tw = new StreamWriter(saveFileDialog1.FileName);
   tw.WriteLine(gettxt());
   tw.Close();

希望这会有所帮助。

【讨论】:

【参考方案2】:

除了读取文件的应用程序出现问题外,没有什么方法可以解释这个问题。请注意,您正在编写 .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。

【讨论】:

【参考方案3】:
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());
        
    

【讨论】:

以上是关于c# savefiledialog 保存特定长度的文本的主要内容,如果未能解决你的问题,请参考以下文章

在 C# 中使用 SaveFileDialog 保存为特定文件格式

C# Open/SaveFileDialog 使用不同的文件系统

如何使用 saveFileDialog 在 C# 中保存图像? [复制]

C# OpenFileDialog和SaveFileDialog:打开文件与保存文件

C# 保存文件会删除我的部分文本

不使用 SaveFileDialog 保存文件