以字节数组存储文件与使用文件流进行读写?

时间:2011-12-31 00:26:58

标签: c# file

我正在开发一个修改文件的程序,我想知道我使用它的方式是否错误。

文件存储在另一个文件中的块中,并由一堆哈希分隔。它的大小只有1mb左右,所以我只计算一次它的位置并将其读入一个字节数组,然后像这样工作。

我想知道读取整个文件(尽管它的大小)到内存中的字节数组是否是某种可怕的编程习惯。这是我的程序的唯一目的,并且是它所占用的唯一记忆。

3 个答案:

答案 0 :(得分:2)

这完全取决于您将要读取的文件的预期大小(范围)。如果您的输入文件大小超过100 MB,这种方法没有多大意义。

如果您的输入文件相对于您的软件将运行的机器的内存较小,并且您的程序设计可以从内存中获取整个内容,那么它并不可怕;这是明智的。

但是,如果你的软件实际上并不需要整个文件在内存中的内容,那么这样做的理由就不多了(即使对于较小的文件也是如此。)

答案 1 :(得分:1)

如果您需要对文件进行随机读/写访问以便对其进行修改,那么只要您确定该文件永远不会超过某个大小(您不希望将几百MB的文件读入内存)。

通常使用流阅读器(如BinaryReader)并随时处理数据是一个更好的选择。

答案 2 :(得分:0)

这是可怕的 - 就像大多数记忆/ CPU占用活动一样 - 如果你不必这样做。