C# Can';无法从windows记事本正确读取文件
我用C#为简单文本编辑器编写了一些代码,并使用富文本框控件,我发现了一个我无法解决的问题。问题是,当我在文本编辑器中保存一个文件,然后尝试使用windows记事本重新打开它时,它变成一行,这就是示例 这是我从应用程序写入和保存的时间 在我保存它并在windows记事本中打开后,它会变成这样 这是我保存一张五元钞票的代码C# Can';无法从windows记事本正确读取文件,c#,richtextbox,C#,Richtextbox,我用C#为简单文本编辑器编写了一些代码,并使用富文本框控件,我发现了一个我无法解决的问题。问题是,当我在文本编辑器中保存一个文件,然后尝试使用windows记事本重新打开它时,它变成一行,这就是示例 这是我从应用程序写入和保存的时间 在我保存它并在windows记事本中打开后,它会变成这样 这是我保存一张五元钞票的代码 try { saveFileDialog1.ShowDialog(); this.Text = file = toolStripTextBox1.Text =
try
{
saveFileDialog1.ShowDialog();
this.Text = file = toolStripTextBox1.Text = saveFileDialog1.FileName;
isi = richTextBox1.Text;
write = new System.IO.StreamWriter(file);
write.WriteLine(isi);
write.Close();
toolStripStatusLabel2.Text = "Saved";
}
catch (Exception)
{
toolStripStatusLabel2.Text = "Save cancelled by user";
}
您知道如何修复它吗?使用RichTextBox自己的保存方法将RichTextBox的内容保存到文件中:
保存文件(字符串,RichTextBoxStreamType)代码>
您可以参考以下内容:
通过LoadFile(Stream,RichTextBoxStreamType)加载文件内容代码>,请参阅:您可能会收到此消息,因为您试图仅使用以下代码将richTextBox1.Text
(整个文本)保存在一行中
isi = richTextBox1.Text;
write = new System.IO.StreamWriter(file);
write.WriteLine(isi);
write.Close();
建议在richTextBox1
中的特定行号上使用write.WriteLine()
,然后移动到另一行
示例
for (int i = 0; i < richTextBox1.Lines.Length; i++)
{
write.WriteLine(richTextBox1.Lines[i]);
}
write.Close();
RichTextBox.SaveFile(string path, RichTextBoxStreamType);
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);
}
}
其中path表示代码中的saveFileDialog1.FileName
。对于RichTextBoxStreamType
,最好将其设置为RichTextBoxStreamType.PlainText
,只要不使用诸如颜色/字体/保护/缩进等RTF
然后,您可以使用以下方法再次读取该文件
RichTextBox.LoadFile(string path, RichTextBoxStreamType);
注意:如果文件不在RTF中,而您尝试在RTF中读取它(RichTextBox.LoadFile(字符串路径,RichTextBoxStreamType.RichText);
)
您可能会遇到格式错误。在这种情况下,您需要捕获异常并以普通或Unicode编码读取文件
示例
for (int i = 0; i < richTextBox1.Lines.Length; i++)
{
write.WriteLine(richTextBox1.Lines[i]);
}
write.Close();
RichTextBox.SaveFile(string path, RichTextBoxStreamType);
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);
}
}
谢谢,
我希望这对您有所帮助:)我已经编辑了您的标题。请参阅“”,其中的共识是“不,他们不应该”。