3
我可以使用下面的函數來覆蓋一個文本文件:如何實現「appendFile」函數?
let writeFile ~filename:fn s =
let oc = open_out fn in
output_string oc s;
close_out oc ;;
Howeve,我DONOT知道如何行追加到一個文本文件?
我可以使用下面的函數來覆蓋一個文本文件:如何實現「appendFile」函數?
let writeFile ~filename:fn s =
let oc = open_out fn in
output_string oc s;
close_out oc ;;
Howeve,我DONOT知道如何行追加到一個文本文件?
你可以通過附加的方式標誌Open_append
到open_out_gen
功能:
let _ =
let oc = open_out_gen [Open_creat; Open_text; Open_append] 0o640 "a.txt" in
output_string oc "append\n";
close_out oc
這是我做的:
let append_string path s =
let chan = open_out_gen [Open_wronly; Open_creat] 0o666 path
in let len = out_channel_length chan
in
begin
seek_out chan len;
output_string chan s;
close_out chan;
end
好主意。我不確定語義是什麼,但看起來'Open_append'只是爲你尋找文件的結尾。 (我認爲它可能使用Unix'O_APPEND',這會導致每次寫入都會附加到文件中,無論文件位置在哪裏。) –
哎呀,我的測試是錯誤的。 'Open_append' *確實會導致每個寫入都追加到文件中。所以你應該小心使用它,只有當你真正想做的時候。問候, –
@JeffreyScofield:你說得對,如果以'append'模式打開文件(與c中的'fopen'相同),則不能查找文件。 –