最快读取二进制文件读写(Fastest reading binary file reading an

2019-09-16 15:56发布

我写一个应用程序来读取和分析这可能是1 KB到大小为200 MB的文件。

我要分析它的两倍......

  1. 解压缩文件中包含的图像。

  2. 解析图像提取图像内容。

我一般用文件流,缓冲流,二进制读取和二进制作家读取和写入的内容。

现在,我想知道读取文件并解压速度最快和最有效的方式?

有没有好的方法还是不错的类库?

注:不安全的代码是OK!

Answer 1:

读取文件的速度最快,最简单的方法就是:

var file = File.ReadAllBytes(fileName);

将读取整个文件作为字节数组到内存中。 然后,您可以通过它去寻找你需要在存储阵列的访问速度(这是说,速度极快)什么。 这几乎肯定会比试图为你读它来处理文件速度更快。

但是 ,如果这个文件将不会轻松装入内存(81 MB会),那么你就需要做这大块。 如果这是不需要的,我们可以有把握地避免棘手的讨论。 在这种情况下,解决方案将实行:

  1. 如果使用.NET 4.0,使用内存映射文件 (更多什么是内存映射文件的优势是什么? )。

  2. 如果没有,你需要阅读块,缓存和保持周围你认为你会在存储器(效率)需要或在重新阅读它,你根本无法保持它在内存中。 这可以成为混乱和迟缓。



文章来源: Fastest reading binary file reading and writing
标签: c# file parsing