您可能会得到这个,因为您试图richTextBox1.Text
仅使用以下代码将(整个文本)保存在一行中
StreamWriter sw = File.CreateText(saveFileDialog2.FileName);
sw.WriteLine(richTextBox1.Text);
sw.Flush();
sw.Close();
建议sw.WriteLine()
在特定的行号上使用,richTextBox1
然后移动到另一行。
例子
for (int i = 0; i < richTextBox1.Lines.Length; i++)
{
sw.WriteLine(richTextBox1.Lines[i]);
}
sw.Flush();
sw.Close();
另一种解决方案
已经有一个内置函数用于RichTextBox
保存具有特定编码的文件。您可以RichTextBox.SaveFile()
用于此目的。
例子
RichTextBox.SaveFile(string path, RichTextBoxStreamType);
Wherepath
代表saveFileDialog2.FileName
您的代码。对于RichTextBoxStreamType
,最好设置,RichTextBoxStreamType.PlainText
只要不使用颜色/字体/保护/缩进/等RTF...
然后,您可以使用以下方法再次读取文件
RichTextBox.LoadFile(string path, RichTextBoxStreamType);
注意:如果文件不在 RTF 中并且您尝试在 RTF ( RichTextBox.LoadFile(string path, RichTextBoxStreamType.RichText);
) 中读取它,您可能会遇到格式错误。在这种情况下,您需要捕获异常并以普通或 Unicode 编码读取文件。
例子
RichTextBox _RichTextBox = new RichTextBox();
try
{
_RichTextBox.LoadFile(@"D:\Resources\text.txt", RichTextBoxStreamType.RichText);
}
catch (Exception EX)
{
if (EX.Message.ToLower().Contains("format is not valid"))
{
_RichTextBox.LoadFile(@"D:\Resources\text.txt", RichTextBoxStreamType.PlainText);
}
}
谢谢,
我希望你觉得这有帮助:)