StreamReader.ReadLine和File.ReadLines之间的区别?

obj*_*son 0 c# split

我试图将文件拆分大约1GB我不知道有什么方法可以这样做我用的?StreamReader.ReadLine还是File.ReadLines?

请注意,我没有在内存中获取所有数据文件,因为它需要更多内存.

Ser*_*kiy 5

File.ReadLines在枚举行时,在内部创建ReadLinesIterator用于StreamReader.ReadLine()逐行读取文件的内容:

internal class ReadLinesIterator : Iterator<string>
{
    private StreamReader _reader;

    public override bool MoveNext()
    {
        if (this._reader != null)
        {
            base.current = this._reader.ReadLine();
            if (base.current != null)
                return true;

            base.Dispose();
        }
        return false;
    }
}
Run Code Online (Sandbox Code Playgroud)

因此,差异在于 - StreamReader.ReadLine()从流中读取单行.File.ReadLines迭代所有行(直到你停止)并StreamReader.ReadLine()用于从流中读取每一行.