将文本文件读入字符串变量的最快方法是什么?

我理解它可以通过几种方式完成,比如读取单个字节,然后将它们转换为字符串。我在寻找一种编码最少的方法。


当前回答

string content = System.IO.File.ReadAllText( @"C:\file.txt" );

其他回答

我强烈建议使用File. readlines(路径)相比StreamReader或任何其他文件读取方法。请在下面找到小文件和大文件的详细性能基准。 我希望这能有所帮助。

文件操作读取结果:

对于小文件(只有8行)

对于较大的文件(128465行)

readline的例子:

public void ReadFileUsingReadLines()
{
    var contents = File.ReadLines(path);
}

注意:基准测试是在。net 6中完成的。

File怎么样?ReadAllText:

string contents = File.ReadAllText(@"C:\temp\test.txt");

对于那些觉得这个东西有趣和有趣的新手来说,在大多数情况下(根据这些基准测试)将整个文件读入字符串的最快方法是通过以下方法:

using (StreamReader sr = File.OpenText(fileName))
{
        string s = sr.ReadToEnd();
}
//you then have to process the string

然而,绝对最快的读取文本文件的整体似乎是以下:

using (StreamReader sr = File.OpenText(fileName))
{
        string s = String.Empty;
        while ((s = sr.ReadLine()) != null)
        {
               //do what you have to here
        }
}

与其他几种技术相比,它在大多数情况下胜出,包括与BufferedReader的竞争。

System.IO.StreamReader myFile =
   new System.IO.StreamReader("c:\\test.txt");
string myString = myFile.ReadToEnd();

如果你想从应用程序的Bin文件夹中选择文件,那么你可以尝试以下操作,不要忘记做异常处理。

string content = File.ReadAllText(Path.Combine(System.IO.Directory.GetCurrentDirectory(), @"FilesFolder\Sample.txt"));