我有一個由Fortran程序(格式化)編寫的現有文件,我想在文件的開頭添加幾行。這個想法是在沒有複製原始文件的情況下這樣做的。在現有文件中寫入而不覆蓋Fortran
我可以在與該文件的末尾添加一行:
open(21,file=myfile.dat,status='old',action='write',
form='formatted',position="append")
write(21,*) "a new line"
,但是當我嘗試:
open(21,file=myfile.dat,status='old',action='write',
form='formatted',position="rewind")
write(21,*) "a new line"
它將覆蓋整個文件。
這可能是不可能的。 至少,我很樂意確認這是不可能的。
但你不必讀取整個舊的文件到內存一旦。使用操作系統將舊文件重命名爲臨時文件名。然後使用舊文件名創建一個新文件,然後輸入所需的數據。然後將舊文件附加到新文件。 (根據操作系統和文件數據的性質,您可能可以在操作系統上執行該操作。) – dmm
「先製作副本」也包括您的情況。 –