ryoakg
4/2/2016 - 2:26 PM

bzip2.clj

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