【问题标题】:c# savefilediaglog saving text of specific lengthc# savefiledialog 保存特定长度的文本
【发布时间】: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写在一行吗?

标签: c# streamwriter savefiledialog


【解决方案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());
              }
          }
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2012-02-06
        • 2015-05-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-08-07
        相关资源
        最近更新 更多