(require '[clojure.java.io :as io])
(def data [0x30 0x31 0x32 0x33 0x34])
(defn output-stream-test [data offset f & options]
(with-open [o (-> (apply io/output-stream f options)
java.util.zip.GZIPOutputStream.)]
(.write o data offset (count data))))
(output-stream-test (byte-array (count data) data)
0
"/tmp/a.txt.gz")
(defn input-stream-test [buf offset f & options]
(with-open [o (-> (apply io/input-stream f options)
java.util.zip.GZIPInputStream.)]
(.read o buf offset (count buf))))
(let [buf (byte-array 5)]
(input-stream-test buf 0 "/tmp/a.txt.gz")
(seq buf))
(defn writer-test [content f & options]
(with-open [w (-> (apply io/output-stream f options)
java.util.zip.GZIPOutputStream.
io/writer)]
(binding [*out* w]
(println content))))
(writer-test {:a 1} "/tmp/a.edn.gz")
(defn reader-test [f & options]
(with-open [r (-> (apply io/input-stream f options)
java.util.zip.GZIPInputStream.
io/reader)]
(binding [*in* r]
(read-line))))
(reader-test "/tmp/a.edn.gz")
(defn reading-object-test [f & options]
(with-open [r (-> (apply io/input-stream f options)
java.util.zip.GZIPInputStream.
io/reader
java.io.PushbackReader.)]
(read r)))
(reading-object-test "/tmp/a.edn.gz")
;;; boot repl -p <PORT>
(set-env! :dependencies '[[org.apache.commons/commons-compress "1.8"]])
(require '[clojure.java.io :as io])
(def data [0x30 0x31 0x32 0x33 0x34])
(defn output-stream-test [data offset f & options]
(with-open [o (-> (apply io/output-stream f options)
org.apache.commons.compress.compressors.bzip2.BZip2CompressorOutputStream.)]
(.write o data offset (count data))))
(output-stream-test (byte-array (count data) data)
0
"/tmp/a.txt.bz2")
(defn input-stream-test [buf offset f & options]
(with-open [o (-> (apply io/input-stream f options)
org.apache.commons.compress.compressors.bzip2.BZip2CompressorInputStream.)]
(.read o buf offset (count buf))))
(let [buf (byte-array 5)]
(input-stream-test buf 0 "/tmp/a.txt.bz2")
(seq buf))
(defn writer-test [content f & options]
(with-open [w (-> (apply io/output-stream f options)
org.apache.commons.compress.compressors.bzip2.BZip2CompressorOutputStream.
io/writer)]
(binding [*out* w]
(println content))))
(writer-test {:a 1} "/tmp/a.edn.bz2")
(defn reader-test [f & options]
(with-open [r (-> (apply io/input-stream f options)
org.apache.commons.compress.compressors.bzip2.BZip2CompressorInputStream.
io/reader)]
(binding [*in* r]
(read-line))))
(reader-test "/tmp/a.edn.bz2")
(defn reading-object-test [f & options]
(with-open [r (-> (apply io/input-stream f options)
org.apache.commons.compress.compressors.bzip2.BZip2CompressorInputStream.
io/reader
java.io.PushbackReader.)]
(read r)))
(reading-object-test "/tmp/a.edn.bz2")