C# 逐行从文件中读取数据
我当前正在打开一个文件并将其显示在消息框中C# 逐行从文件中读取数据,c#,.net,file-io,C#,.net,File Io,我当前正在打开一个文件并将其显示在消息框中 private void button2_Click_1(object sender, EventArgs e) { //OpenFileDialog1.ShowDialog(); OpenFileDialog file = new OpenFileDialog(); file.FileName = ""; file.Title = "Open A Text document."; file.Filter = "
private void button2_Click_1(object sender, EventArgs e)
{
//OpenFileDialog1.ShowDialog();
OpenFileDialog file = new OpenFileDialog();
file.FileName = "";
file.Title = "Open A Text document.";
file.Filter = "(*.gc)|*.gc|(*.etf)|*.etf|(*.txt)|*.txt|(*.GC)|*.GC|(*.tap)|*.tap";
DialogResult result = file.ShowDialog();
if (result == DialogResult.OK)
{
System.IO.StreamReader OpenFile = new System.IO.StreamReader(file.FileName);
textBox1.Text = OpenFile.ReadToEnd();
OpenFile.Close();
}
if (file.FileName.Length > 0)
{
OpenFile(file.FileName);
}
但是我需要逐行读取文件并在消息框中显示它。是否有办法更改此代码。考虑使用方法。这正是该方法的用途
while (OpenFile.Peek() >= 0)
{
MessageBox.Show(OpenFile.ReadLine());
}
您是否尝试过
OpenFile.ReadLine()
方法
或者,更激进的方法
string[] lines = OpenFile.ReadToEnd().Split('\n');
有一个方法返回IEnumerable,因此您可以执行以下操作:
foreach(var line in File.ReadLines("myfile.txt")){
//Do stuff with line
}
从文件中读取所有行的最简单方法是方法(内部使用
StreamReader
):
您是说要为文件中的每一行显示单独的消息框吗?请使用ReadLine()而不是ReadToEndI。我想在同一消息中显示它box@Sthn那么您想在单个消息框中显示整个文件?您是否尝试过
MessageBox.Show(OpenFile.ReadToEnd())代码>?@Sthn比为什么需要逐行阅读+1不知道返回的ReadLinesIEnumerable@lazyberezovsky-在.Net 4.0中有很多微妙的API改进IEnumerable friendly IO就是其中之一,这是上帝送给LINQ的礼物。是的,我知道一些(比如Directory.Enumerable文件)但这是我第一次看到ReadLines:)@lazyberezovsky-4.5中所有的异步内容都是amazeballs:)如果我想使用文本框而不是消息框,如何使用它使用textBox.Text+=OpenFile.ReadLine()
或类似的东西。
foreach(string line File.ReadAllLines(fileName))
MessageBox.Show(line);