C# 使用SaveFileDialog保存的文件中出现意外字符

C# 使用SaveFileDialog保存的文件中出现意外字符,c#,.net,winforms,savefiledialog,C#,.net,Winforms,Savefiledialog,代码: 输出 我真的不知道如何去掉这些字符。如果要写入文本文件,请不要使用。它附加字符串的长度,这解释了为什么要观察这些奇怪的字符 您可以使用: 或者,在此特定示例中,您可以使用以下方法将所有代码缩短为一行代码: 也要小心!您有一个尾随。这意味着无论用户是否确认或取消文件对话框,对文件的写入将始终发生。请注意我在上一个示例中是如何删除它的。如果要写入文本文件,请不要使用。它附加字符串的长度,这解释了为什么要观察这些奇怪的字符 您可以使用: 或者,在此特定示例中,您可以使用以下方法将所有代码缩短

代码:

输出


我真的不知道如何去掉这些字符。

如果要写入文本文件,请不要使用。它附加字符串的长度,这解释了为什么要观察这些奇怪的字符

您可以使用:

或者,在此特定示例中,您可以使用以下方法将所有代码缩短为一行代码:


也要小心!您有一个尾随
if
语句之后添加code>。这意味着无论用户是否确认或取消文件对话框,对文件的写入将始终发生。请注意我在上一个示例中是如何删除它的。

如果要写入文本文件,请不要使用。它附加字符串的长度,这解释了为什么要观察这些奇怪的字符

您可以使用:

或者,在此特定示例中,您可以使用以下方法将所有代码缩短为一行代码:

也要小心!您有一个尾随
if
语句之后添加code>。这意味着无论用户是否确认或取消文件对话框,对文件的写入将始终发生。注意我在上一个示例中是如何删除它的。

请尝试:

if (sfd.ShowDialog() == System.Windows.Forms.DialogResult.OK)
{
    string path = sfd.FileName;
    File.WriteAllLines(path, hello);
}
StreamWriter非常适合在文件中写入文本。BinaryWriter将二进制的基本类型写入流,并支持以特定编码写入字符串。

尝试:

if (sfd.ShowDialog() == System.Windows.Forms.DialogResult.OK)
{
    string path = sfd.FileName;
    File.WriteAllLines(path, hello);
}

StreamWriter非常适合在文件中写入文本。BinaryWriter将二进制的基本类型写入流,并支持以特定编码写入字符串。

要添加,在写入字符串之前,
BinaryWriter
会追加字符串的长度(7位编码的二进制形式)。这就是导致问题的原因,在写入字符串之前,
BinaryWriter
会追加字符串的长度(7位编码的二进制形式)。这就是导致问题的原因谢谢你和我使用了
foreach(hello中的字符串s){sw.WriteLine(s);}
谢谢你和我使用了
foreach(hello中的字符串s){sw.WriteLine(s);}
if (sfd.ShowDialog() == System.Windows.Forms.DialogResult.OK)
{
    string path = sfd.FileName;
    File.WriteAllLines(path, hello);
}
StreamWriter sw = new StreamWriter(path);