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# 中保存图像? [复制]