我正在尝试用Julia(0.6.3)写入文件,但是遇到了一些问题。
根据documentation,以下方法应该起作用。
> f = open("hello.txt","w")
> write(f,"Hello again.")
当我cat hello.txt
时文件为空白。这段代码直接来自文档。应该可以,但是什么也没做。
我确定chmod +rw
的权限还可以,但是没有任何改变。但是,以下两项均能按预期工作。
> write("hello.txt","Hello World")
> open("/tmp/t.txt", "w") do f
write(f, "A, B, C, D\n")
end
因此,当我直接指定文件时,我可以对其进行写入,或者如果IOStreat,则将类型对象作为do
的一部分给出。
这里的意义是,显然要向文件中写入APPEND,而不是覆盖它,您需要使用open("file", "a")
。我可以使用do
,但是,由于我正在学习Julia,所以我想知道为什么某些事情会失败,所以我可以从失败中学习。如果我做错了事,我需要知道那是什么供将来参考。如果我没有做错任何事情,那么我需要提交一个错误报告。
答案 0 :(得分:2)
就在文档下面:
如果此时检查hello.txt的内容,您将 注意它是空的;实际没有任何内容写入磁盘 然而。这是因为在写入之前必须关闭IOStream。 实际上已刷新到磁盘:
julia> close(f)
或者如@BogumiłKamiński在评论中所写,如果要刷新数据而不关闭文件处理程序,请使用功能flush/1。
julia> flush(f)