如何從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