0

我是 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();
}
4

2 回答 2

2

我相信你应该使用

sb.AppendLine(); 

代替sb.Append();

现在,您可以(应该)也使用ReadToEnd(),正如 David Heffernan 所建议的那样。

using(StreamReader sr = File.OpenText(ofd.FileName)) {
   textBox1.Text = sr.ReadToEnd();
}
于 2013-02-04T13:20:39.463 回答
1

我相信你是在想这个。不需要你的循环,框架已经提供了方便的方法来做你想要的。

我会这样写代码:

using (StreamReader sr = new StreamReader(ofd.FileName))
{
    textBox1.Text = sr.ReadToEnd();
}

我猜你关于保留间距的问题是因为你的循环不保留换行符。这是使用内置框架的另一个原因。让它承受压力并正确处理细节。

于 2013-02-04T13:22:48.453 回答