Art*_*ldt 9 binaryfiles clojure binary-data
在clojure中解析二进制数据的最简洁方法是什么?我需要能够同样干净地读/写文件或套接字.
就像是:
(read-data source-of-data) => { :index 42 , :block-size 4 , data-size: 31415, :data (1 2 3 4 ...)}
以及将数据放回的反向.以某种方式定义结构并使读写函数使用相同的定义真的很棒.
Jam*_*ble 13
Gloss可以轻松地在字节级别定义二进制格式以进行读取和写入.
(defcodec example-codec
[:id :uint32
:msg-type (enum :byte {:a \A, :b \B})
:status (string :ascii :length 11)])
(def buffer (byte-array 16))
(.read (input-stream "filename.bin") buffer)
(decode example-codec buffer)
(encode example-codec {:id 42, :msg-type :a, :status "A-OKAY"})
Run Code Online (Sandbox Code Playgroud)
该bit-map
函数允许位级格式,但定义的位数必须可被8整除,因此字节仍然排列.
还有字节规范.
归档时间: |
|
查看次数: |
4880 次 |
最近记录: |