【发布时间】:2013-08-14 13:59:14
【问题描述】:
我想在 C# 中读取一个 .txt 文件,但我不会同时读取所有行。例如,考虑 500 行文本文件。我想要一个函数运行 25 次,每次读取 20 行连续的行。函数第一次调用会读取1到20行,第二次调用会读取21-40行。
下面的简单代码在 c++ 中执行此操作,但我不知道如何在 C# 中实现它:
string readLines(ifstream& i)
{
string totalLine="", line = "";
for(int i = 0; i < 20; i++){
getline(i, line);
totalLine += line;
}
return totalLine;
}
int main()
{
// ...
ifstream in;
in.open(filename.c_str());
while(true){
string next20 = readLines(in);
// so something with 20 lines.
}
// ...
}
【问题讨论】:
-
您在 C++ 中给出的代码根本不这样做 - 它只是循环读取 all 行。这在 C# 中也很容易做到……
foreach (string line in File.ReadLines(...))。批处理在 C# 中还不错... -
这只是一个简单的例子。我的意思是,如果你将 while 语句放入一个函数中,即使你过早地退出读取文件,它也会从中断的地方继续。
-
@MertToka:那个“快速示例”并没有说明你当时想要做什么——它基本上没有给问题添加任何东西。
-
@JonSkeet 请查看编辑。
标签: c# file-io filestream