我尝试使用File
类和FileStream
类从大文件中读取数据或将大量数据写入文件。
假设我在Visual Studio 2010中使用C#。哪个类为我提供了更好的性能?为什么?
答案 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(它更容易使用)并查看它是否正常运行。