public void get10FirstLines()
{
StreamReader sr = new StreamReader(path);
String lines = "";
lines = sr.readLine();
}
Run Code Online (Sandbox Code Playgroud)
如何在字符串中获取文件的前10行?
Jon*_*eet 29
而不是StreamReader直接使用,使用File.ReadLines哪个返回IEnumerable<string>.然后你可以使用LINQ:
var first10Lines = File.ReadLines(path).Take(10).ToList();
Run Code Online (Sandbox Code Playgroud)
使用的好处File.ReadLines,而不是File.ReadAllLines在于它只是读取而不是读取整个文件你感兴趣的线路.另一方面,它仅适用于.NET 4+.如果你想要它用于.NET 3.5,那么使用迭代器块很容易实现.
因此,要求ToList()有强制查询进行评估(即实际读取的数据),因此,它的阅读正好一次.没有ToList调用,如果你试图多次迭代first10Lines,它会不止一次地读取文件(假设它完全正常工作;我似乎记得File.ReadLines在这方面没有非常干净地实现).
如果您希望前10行作为单个字符串(例如将"\ r \n"分隔开来),那么您可以使用string.Join:
var first10Lines = string.Join("\r\n", File.ReadLines(path).Take(10));
Run Code Online (Sandbox Code Playgroud)
显然,您可以通过更改调用中的第一个参数来更改分隔符.
var lines = File.ReadAllLines(path).Take(10);
Run Code Online (Sandbox Code Playgroud)
您可以尝试使用File.ReadLines。尝试这个:-
var lines = File.ReadLines(path).Take(10);
Run Code Online (Sandbox Code Playgroud)
在您的情况下,请尝试此操作,因为您希望将前10行作为单个字符串使用,因此您可以尝试这样使用string.Join():
var myStr= string.Join("", File.ReadLines(path).Take(10));
Run Code Online (Sandbox Code Playgroud)