C# 在保留换行符的同时将文本框文本写入文件
我试过使用: StreamWriter.WriteLine() StreamWriter.Write() File.WriteAllText()文件 但是所有这些方法都将文本框文本写入文件,而不保留换行符和类似字符。我该怎么做呢 编辑:C# 在保留换行符的同时将文本框文本写入文件,c#,text,streamwriter,C#,Text,Streamwriter,我试过使用: StreamWriter.WriteLine() StreamWriter.Write() File.WriteAllText()文件 但是所有这些方法都将文本框文本写入文件,而不保留换行符和类似字符。我该怎么做呢 编辑: 我正在使用多行RichTextBox来完成此操作。也许这会有所帮助。来自StreamWriter类文档 string[] str = String.Split(...); // Write each directory name to a file. usi
我正在使用多行RichTextBox来完成此操作。也许这会有所帮助。来自
StreamWriter
类文档
string[] str = String.Split(...);
// Write each directory name to a file.
using (StreamWriter sw = new StreamWriter("CDriveDirs.txt"))
{
foreach (DirectoryInfo dir in cDirs)
{
sw.WriteLine(dir.Name);
}
}
这样做的目的是从文本框中获取文本,然后在\n
char之后将其拆分。结果将是一个字符串数组,每个元素包含一行
稍后编辑:
问题是回程车厢不见了。如果使用debugger查看代码,您将看到字符串的新行中只有\n
,而不是\r\n
。如果将这行代码放入函数中,将得到所需的结果:
string tbval = richTextBox1.Text;
tbval = tbval.Replace("\n", "\r\n");
对于这个问题,应该有其他的解决方案,看起来比这个更好,但是这个解决方案很快就会有效果。要扩展tzortzik的答案,如果您使用StreamWriter并简单地访问RichTextBox的Lines属性,它将为您完成以下工作:
private void saveToolStripMenuItem_Click(object sender, EventArgs e)
{
SaveFileDialog s = new SaveFileDialog();
s.FileName = "new_doc.txt";
s.Filter = "Text File | *.txt";
if (s.ShowDialog() == System.Windows.Forms.DialogResult.OK)
{
using (StreamWriter sw = new StreamWriter(s.FileName))
{
foreach (string line in richTextBox1.Lines)
{
sw.WriteLine(line);
}
}
}
}
不保留换行是什么意思?@tzortzik写的文本都在一行上。一段代码会更好。我们应该看看你做了什么。@tzortzik我添加了我正在使用的代码。
private void saveToolStripMenuItem_Click(object sender, EventArgs e)
{
SaveFileDialog s = new SaveFileDialog();
s.FileName = "new_doc.txt";
s.Filter = "Text File | *.txt";
if (s.ShowDialog() == System.Windows.Forms.DialogResult.OK)
{
using (StreamWriter sw = new StreamWriter(s.FileName))
{
foreach (string line in richTextBox1.Lines)
{
sw.WriteLine(line);
}
}
}
}