序列化 / 二进制格式

(require '[clojure.edn :as edn] '[clojure.java.io :as io])

(defrecord Data [text num arr])

(def data (->Data "Hello" 3.14 [2 5 7]))

; Write Binary Data
(with-open [out (io/output-stream "data.bin")]
  (.write out (.getBytes (pr-str (into {} data)) "UTF-8")))

; Read Binary Data
(def data2 (map->Data (edn/read-string (slurp "data.bin"))))
; data2 num is 3.14

(println "data2 is" data2)