(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)