1

我有一个算法可以乱序计算向量的分量(字节)。我将向量存储在一个文件中,因为当我真正运行它时,向量将是数百万字节长。但作为一个简化的例子,我想从一个空文件开始:

-1 -1 -1 -1 -1 -1 -1 -1

然后我的算法将一次填写两个值:

-1 -1 4 7 -1 -1 -1 -1

然后

-1 -1 4 7 -1 -1 3 9

等,直到所有的值都被填写。这可能吗?我尝试过使用随机访问文件,但是当您使用 seek() 方法时,它会在我要编辑的值之前为所有值填充 0,从而删除我的算法之前所做的任何计算。由于我需要这个程序来处理大量的数字序列,所以不能将整个文件拉入内存。有任何想法吗?

4

2 回答 2

0

这里不是一个真正的答案,只是一个建议。抱歉,我还不能评论状态

打开文件一次将这些值存储在内存中的小块中,然后只写入另一个文件,同时清除内存和路上的东西

于 2014-03-28T20:33:44.393 回答
0

大多数文件系统并不是真正的随机访问,因此从实际的角度来看,如果不从磁盘读取整个文件并将其写回磁盘,就很难或不可能修改文件的中间部分。可能您需要做的是一次读取文件的一个部分,适当地修改该部分,然后将其写回临时文件。完成后,您可以将原始文件替换为临时文件。

于 2014-03-28T20:35:40.137 回答