我有一个从Fortran 90程序生成的大型二进制文件(~ GB大小)。我想修改文件头部的一些东西。该文件的结构非常复杂,包含许多不同的变量,我不想在此赘述。在读取和重写头部后,是否可以在不知道其详细结构的情况下“复制并粘贴”该文件的提醒?或者更好的是,我是否可以避免完全重写整个文件,而只对原始文件进行更改?(不确定这是否重要,但报头的长度将会更改。)
发布于 2016-09-01 06:53:40
由于您要更改标题的长度,因此我认为您必须编写一个新的、修改过的文件。通过使用流访问打开文件并只读取字节(如果文件是四个字节的倍数,则可能是四个字节的字),直到到达EOF并将它们复制到新文件中,可以避免“理解”标头后面的记录。但是,如果文件最初是作为顺序访问创建的,并且您希望将来以这种方式访问它,则必须处理标题记录的记录长度信息,包括更改值以与更改的记录长度保持一致。此记录长度信息通常是每个记录开头和结尾的四个字节的整数,但它取决于编译器。
https://stackoverflow.com/questions/39260019
复制相似问题