System.IO.File与System.IO.FileStream的性能

时间:2013-04-02 12:43:22

标签: c# file filestream

我尝试使用File类和FileStream类从大文件中读取数据或将大量数据写入文件。

假设我在Visual Studio 2010中使用C#。哪个类为我提供了更好的性能?为什么?

3 个答案:

答案 0 :(得分:2)

FileStream是执行(正常)文件IO的唯一方法。 File类中的任何方法都使用FileStream来访问文件。

因此,使用FileStream将使您最接近文件系统,但File类中的方法不会增加太多开销,因此如果您有一些方法,您将只能超越它们了解您要使用的实际文件的特殊知识,可以通过某种方式优化文件访问。

答案 1 :(得分:1)

最好的方法是使用两者构建一些示例应用程序,并根据您的输入数据进行测试。这样你就有了科学证据可以作出决定。阅读Eric Lippert的博客post,正如SonerGönül在评论中所建议的那样。

  

如果你有两匹马,你想知道两匹马中的哪一匹   比你的马更快。不要写简短的描述   马,将它们发布在互联网上,并要求随机的陌生人猜测   哪个更快!即使你纯粹有机会得到准确答案,   你对它的准确性有什么信心?你可以轻松地和   通过运行两者来准确地发现两个程序中哪一个更快   自己用秒表测量它们。 - Eric Lippert

答案 2 :(得分:0)

如果您使用LARGE文件,FileStream是唯一的方法 - 使用File将整个文件读入内存。使用FileStream时,您可以读取/写入文件的各个部分。话虽如此,首先尝试File(它更容易使用)并查看它是否正常运行。