點我檢視原文及更多示例
(ns $clojureDoc.core.slurp)
;; 使用方式:(slurp f & opts)
;; Opens a reader on f and reads all its contents, returning a string.
;; See clojure.java.io/reader for a complete list of supported arguments.
;; 打開一個基于函數f的讀取器,讀取所有的内容,傳回一個字元串
;; 參照clojure.java.io/reader檢視支援的所有參數清單
;; 以下是clojure.java.io/reader的介紹:
;; Attempts to coerce its argument into an open java.io.Reader.
;; Default implementations always return a java.io.BufferedReader.
;;
;; Default implementations are provided for Reader, BufferedReader,
;; InputStream, File, URI, URL, Socket, byte arrays, character arrays,
;; and String.
;;
;; If argument is a String, it tries to resolve it first as a URI, then
;; as a local file name. URIs with a 'file' protocol are converted to
;; local file names.
;;
;; Should be used inside with-open to ensure the Reader is properly
;; closed.
;; 可以看出,預設傳回一個BufferedReader
;; 參數類型可以是 Reader, BufferedReader, InputStream, File, URI, URL, Socket, byte arrays, character arrays, and String
;; 編輯檔案,後面是内容,如果檔案不存在,則建立,類似于Linux shell中的"echo > fileName"
(spit "test.txt" "this is a test file for slurp.\n Bye.")
(println "============")
;; => ============
;; 提供的參數是String,以URI解析不通,然後以本地檔案方式解析,并輸出内容
(println (slurp "test.txt"))
;; => this is a test file for slurp.
;; Bye.
;; java.lang.IllegalArgumentException: Cannot open xxx as an InputStream.
;; (def x (atom 123))
;; (slurp x)