Uni*_* Le 0 c# text save richtextbox
我将文件从Richtextbox保存到文本文件时遇到问题.
我的richtextbox看起来像这样;
ABC ...
SDE ...
KLO ...
Run Code Online (Sandbox Code Playgroud)
我保存后看起来像这样:
ABC ... SDE ... KLO ...
Run Code Online (Sandbox Code Playgroud)
但我希望像行后的richtextbox一样.我做错了什么?
if (saveFileDialog2.ShowDialog() == DialogResult.OK)
{
StreamWriter sw = File.CreateText(saveFileDialog2.FileName);
sw.WriteLine(richTextBox1.Text);
sw.Flush();
sw.Close();
//File.WriteAllText(saveFileDialog2.FileName, str);
}
Run Code Online (Sandbox Code Playgroud)
你可能得到这个,因为你试图richTextBox1.Text仅使用以下代码将(整个文本)保存在一行中
StreamWriter sw = File.CreateText(saveFileDialog2.FileName);
sw.WriteLine(richTextBox1.Text);
sw.Flush();
sw.Close();
Run Code Online (Sandbox Code Playgroud)
建议sw.WriteLine()在特定的行号上使用,richTextBox1然后移到另一行.
例
for (int i = 0; i < richTextBox1.Lines.Length; i++)
{
sw.WriteLine(richTextBox1.Lines[i]);
}
sw.Flush();
sw.Close();
Run Code Online (Sandbox Code Playgroud)
已经有一个内置函数RichTextBox来保存具有特定编码的文件.您可以RichTextBox.SaveFile()为此目的使用.
例
RichTextBox.SaveFile(string path, RichTextBoxStreamType);
Run Code Online (Sandbox Code Playgroud)
在代码中path代表saveFileDialog2.FileName的位置.因为RichTextBoxStreamType,RichTextBoxStreamType.PlainText只要你不使用RTF,如颜色/字体/保护/缩进/等等,最好将其设置为...
然后,您可以使用以下方法再次读取该文件
RichTextBox.LoadFile(string path, RichTextBoxStreamType);
Run Code Online (Sandbox Code Playgroud)
注意:如果文件不在RTF中并且您尝试在RTF(RichTextBox.LoadFile(string path, RichTextBoxStreamType.RichText);)中读取它,则可能会遇到格式错误.在这种情况下,您需要捕获异常并以Plain或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);
}
}
Run Code Online (Sandbox Code Playgroud)
谢谢,
我希望你觉得这很有帮助:)
| 归档时间: |
|
| 查看次数: |
14366 次 |
| 最近记录: |