我是c#的新手,我有一个问题,可能有一个非常简单的解决方案。我想导入.txt文件以查看文本框并保持原始文件的格式(所有正确的间距)。这可能吗?当用户单击按钮并显示文件时,我使用以下代码打开.txt文件。再一次,我对编程非常陌生,任何帮助都会非常感激。
OpenFileDialog ofd = new OpenFileDialog();
ofd.Filter = "txt files (*.txt)|*.txt|All files (*.*)|*.*";
if (ofd.ShowDialog() == System.Windows.Forms.DialogResult.OK)
{
StreamReader sr = File.OpenText(ofd.FileName);
string s = sr.ReadLine();
StringBuilder sb = new StringBuilder();
while (s != null)
{
sb.Append(s);
s = sr.ReadLine();
}
sr.Close();
textBox1.Text = sb.ToString();
}
答案 0 :(得分:2)
我相信你应该使用
sb.AppendLine();
而不是sb.Append();
现在,你可以(应该)按照David Heffernan的建议使用ReadToEnd()
。
using(StreamReader sr = File.OpenText(ofd.FileName)) {
textBox1.Text = sr.ReadToEnd();
}
答案 1 :(得分:1)
我相信你过分思考这一点。没有你的循环,框架已经提供了完全符合你想要的便利方法。
我会写这样的代码:
using (StreamReader sr = new StreamReader(ofd.FileName))
{
textBox1.Text = sr.ReadToEnd();
}
我猜你关于保留间距的问题是由于你的循环没有保留换行符这一事实。这是使用内置框架的另一个原因。让它承受压力并获得正确的细节。