我有这段代码:
open('file.txt', append, Stream),
write(Stream, (clause(t1))),
close(Stream)
我在我的程序中重复了几次,然后我打开并关闭了几次文件。我可以只在将内容保存到带有追加的列表中时打开文件,最后我将此列表保存在文件中吗?
答案 0 :(得分:2)
您可以为Stream使用符号别名,然后open使用所选别名的文件,运行程序,发送将别名作为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).
需要注意的是用于引用流的别名......