读取文本文件的最后一行

时间:2013-08-15 11:04:10

标签: c# visual-studio

我有一个有趣的问题 - 我尝试了几个可以读取文本文件的脚本,这没关系。

当文本文件末尾有空行时出现问题 - 该行被“忽略”。

我使用的代码是文件读取的“常用”代码,如下一个:

string fullFileName;
fullFileName = "myFile.txt";
var lines = File.ReadAllLines(fullFileName);
string fileContent = null;
bool firstLine = true;

foreach (var line in lines) {
    if (firstLine != true)
    {
        //textBox1.Text += System.Environment.NewLine;
        fileContent += System.Environment.NewLine;
    }
    else
    {
        firstLine = false;
    }
    //textBox1.Text += line;
    fileContent += line;
}

textBox1.Text = fileContent;

因此,如果文件的最后一行myFile.txt为空,则不会在TextBox中显示。

你能帮我解决问题吗?

4 个答案:

答案 0 :(得分:5)

我认为你可以完全避免循环而只是这样做:

textBox1.Text = File.ReadAllText(fullFileName);

这将保留所有换行符。

答案 1 :(得分:1)

这是文件表示的问题,而不是ReadAllLines。 请参阅此主题:http://www.pcreview.co.uk/forums/file-readalllines-doesnt-read-last-blank-line-weird-t3765200.html

答案 2 :(得分:0)

其他解决方案:

using (FileStream fileStream = File.OpenRead("C:\myFile.txt"))
using (StreamReader streamReader = new StreamReader(fileStream))
{
    string fileContent = streamReader.ReadToEnd();

    textBox1.Text = fileContent;
}

答案 3 :(得分:0)

File.ReadAllLines(fullFileName);

不会读回车(' \ r')。我认为你的最后一行只包含回车,这就是为什么它不被阅读。把空间放在最后一行检查。

http://msdn.microsoft.com/en-us/library/s2tte0y1.aspx