我有这个代码:
open('file.txt', append, Stream),
write(Stream, (clause(t1))),
close(Stream)
我在我的程序中重复了几次,然后我打开和关闭了几次文件。我可以只打开文件一次将内容保存在带有附加的列表中,最后我将此列表保存在文件中吗?
我有这个代码:
open('file.txt', append, Stream),
write(Stream, (clause(t1))),
close(Stream)
我在我的程序中重复了几次,然后我打开和关闭了几次文件。我可以只打开文件一次将内容保存在带有附加的列表中,最后我将此列表保存在文件中吗?
您可以为 Stream 使用符号别名,然后使用所选别名打开文件,运行程序,发出将别名作为 Stream 传递的写入,然后在完成后关闭文件。
这是一个虚拟示例:
save :-
open('myfile.txt', write, _, [alias(clauses)]),
forall(between(1,100,N),
format(clauses, 'clause(~d).~n', N)),
close(clauses).
然后'myfile.txt'将包含
clause(1).
clause(2).
clause(3).
...
clause(99).
clause(100).
需要注意的是用于引用流的别名...