[英]How do you select the specific line to read in vb.net?
我想知道是否/如何使用system.io.streamreader读取vb.net中的特定行。
Dim streamreader as system.io.streamreader
streamreader.selectline(linenumber as int).read
streamreader.close()
这可能吗?或者有类似功能吗?
我将使用File.ReadAllLines
将行读入数组,然后仅使用数组选择行。
Dim allLines As String() = File.ReadAllLines(filePath)
Dim lineTwo As String = allLines(1) '0-based index
请注意, ReadAllLines
会将整个文本文件读入内存,但是我认为这不是问题,因为如果是这样,那么我建议您采用另一种方法来尝试跳至特定行。
ReadLines
非常快,因为它不会加载内存中的所有内容。 它返回一个IEnumerable<string>
,使您可以轻松跳到一行。 取得这个5GB的档案:
var data = new string('A', 1022);
using (var writer = new StreamWriter(@"d:\text.txt"))
{
for (int i = 1; i <= 1024 * 1024 * 5; i++)
{
writer.WriteLine("{0} {1}", i, data);
}
}
var watch = Stopwatch.StartNew();
var line = File.ReadLines(@"d:\text.txt").Skip(704320).Take(1).FirstOrDefault();
watch.Stop();
Console.WriteLine("Elapsed time: {0}", watch.Elapsed); // Elapsed time: 00:00:02.0507396
Console.WriteLine(line); // 704320 AAAAAA...
Console.ReadLine();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.