StreamReader 读取行范围
StreamReader to Read Range of lines
假设我有一个文件并想读取这些行,它是:
while( !streamReader.EndOfStream ) {
var line = streamReader.ReadLine( );
}
如何只读取一定范围内的行?
只喜欢从 10 到 20 的阅读行。
我建议使用没有任何 reader:
的 Linq
var lines = File
.ReadLines(@"C:\MyFile.txt")
.Skip(10) // skip first 10 lines
.Take(10); // take next 20 - 10 == 10 lines
...
foreach(string line in lines) {
...
}
如果你必须使用reader,你可以实现类似这样的东西
// read top 20 lines...
for (int i = 0; i < 20 && !streamReader.EndOfStream; ++i) {
var line = streamReader.ReadLine();
if (i < 10) // ...and skip first 10 of them
continue;
//TODO: put relevant code here
}
假设我有一个文件并想读取这些行,它是:
while( !streamReader.EndOfStream ) {
var line = streamReader.ReadLine( );
}
如何只读取一定范围内的行? 只喜欢从 10 到 20 的阅读行。
我建议使用没有任何 reader:
的 Linq var lines = File
.ReadLines(@"C:\MyFile.txt")
.Skip(10) // skip first 10 lines
.Take(10); // take next 20 - 10 == 10 lines
...
foreach(string line in lines) {
...
}
如果你必须使用reader,你可以实现类似这样的东西
// read top 20 lines...
for (int i = 0; i < 20 && !streamReader.EndOfStream; ++i) {
var line = streamReader.ReadLine();
if (i < 10) // ...and skip first 10 of them
continue;
//TODO: put relevant code here
}