我尝试使用File
类和FileStream
类从大文件中读取数据或将大量数据写入文件。
假设我在 Visual Studio 2010 中使用 C#。哪个类为我提供了更好的性能,为什么?
我尝试使用File
类和FileStream
类从大文件中读取数据或将大量数据写入文件。
假设我在 Visual Studio 2010 中使用 C#。哪个类为我提供了更好的性能,为什么?
找出答案的最佳方法是使用两者构建一些示例应用程序,并根据您的输入数据对其进行测试。这样,您将有科学证据作为您的决定的依据。阅读Soner Gönül 在评论中建议的 Eric Lippert 的博客文章。
如果您有两匹马,并且您想知道这两匹马中哪一个跑得更快,那么就让您的马匹比赛。不要对马匹进行简短的描述,将它们发布到互联网上,让随机的陌生人猜猜哪个更快!即使你得到了一个准确的答案,你又怎么能相信它的准确性呢?通过自己运行并用秒表测量它们,您可以轻松准确地发现两个程序中的哪个更快。- 埃里克·利珀特
AFileStream
是做(正常)文件 IO 的唯一方法。类中的任何方法都File
使用 aFileStream
来访问文件。
因此,使用FileStream
将使您最接近文件系统,但File
类中的方法不会增加太多开销,因此只有在您对要使用的实际文件有一些特殊了解时,您才能超越它们让您以某种方式优化文件访问。
如果您使用的是 LARGE 文件,则 FileStream 是唯一的方法 - 使用 File 会将整个文件读入内存。使用 FileStream 将允许您读取/写入文件的某些部分。话虽如此,请先尝试 File(它更容易使用),看看它是否执行正常。