我有一个有趣的问题 - 我尝试了几个可以读取文本文件的脚本,这没关系。
当文本文件末尾有空行时出现问题 - 该行被“忽略”。
我使用的代码是文件读取的“常用”代码,如下一个:
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中显示。
你能帮我解决问题吗?
答案 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')。我认为你的最后一行只包含回车,这就是为什么它不被阅读。把空间放在最后一行检查。