如何从clj文件中将函数“print”输出到REPL中并将其全部置于文本文件中? 有没有办法创建一个新的空的文本文件,并将其与其他clj文件放在项目目录中并在其上工作?创建并写入文本文件打印到REPL的内容
谢谢。
如何从clj文件中将函数“print”输出到REPL中并将其全部置于文本文件中? 有没有办法创建一个新的空的文本文件,并将其与其他clj文件放在项目目录中并在其上工作?创建并写入文本文件打印到REPL的内容
谢谢。
您可以通过重新结合*out*
(binding [*out* (clojure.java.io/writer "foo.txt")]
(print "Hello World"))
(print "This does NOT go to the file") ;; outside the binding macro
在此之后运行做到这一点,应该有一个在它的“Hello World”评为foo.txt
文件。
唯一需要注意的是,此重新绑定仅影响在binding
宏中评估的表单。
这将重新绑定*out*
到文件作家,不要求使用binding
宏。
(set! *out* (clojure.java.io/writer "foo.txt"))
(print "foo") ;; written to foo.txt
(print "bar") ;; written to foo.txt
我不确定是否会有重新设置此变种的任何负面影响。 请谨慎使用!
我知道这不是你正在寻找的,但只是为了记录你可以使用with-out-str宏。
这会将输出转换为可存储在文件中的string
。
请问您能解释一下ns应该有多少? 和要做的操作? foo文件是空的。 – 2013-02-26 06:04:32