I need to convert Nippy data structures stored on disk into something that can be read by Nippy? Nippy uses byte arrays, so I need some way to convert the file into a byte array. I have tried
(clojure.java.io/to-byte-array (clojure.java.io/file folder-path file-path))
but this gives
java.lang.IllegalArgumentException: Value out of range for byte: ?
Then I try:
(into-array Byte/TYPE (map byte (slurp (clojure.java.io/file folder-path file-path))))
but somehow the namespace is wrong, and I can't find the right one.
To write the Nippy structures in the first place, I am using:
(with-open [w (clojure.java.io/output-stream file-path)] (.write w (nippy/freeze data)))))
You can give a try to ClojureWerk's Buffy : https://github.com/clojurewerkz/buffy.
Buffy is a Clojure library for working with binary data, writing complete binary protocol implementations in Clojure, storing complex data structures in an off-heap cache, reading binary files and doing everything you would usually do with ByteBuffer.
No comments:
Post a Comment