生のバイトをファイルに書き込む必要があります。私はそれを行います:
(.write (FileOutputStream "/path") bytes)
...ここで、バイトは byte[] 型でなければなりません。Byte[] にはできないことに注意してください。
(バイト)および/または(配列への)関数の両方でシーケンスを変換しようとしましたが、イライラしました。一例:
user=> (bytes (into-array (filter #(not (= % 13)) (to-byte-array (File. "e:/vpn.bat")))))
java.lang.ClassCastException: [Ljava.lang.Byte; cannot be cast to [B (NO_SOURCE_FILE:0)
続き:
Byte/TYPE を使用した配列への変換は正常に機能します。ただし、バイト配列はそうではありません。ファイルが空になります:
(import 'FileOutputStream)
(use 'clojure.contrib.io)
(defn remove-cr-from-file [file]
(with-open [out (FileOutputStream. file)]
(let [dirty-bytes (to-byte-array file)
clean-seq (filter #(not (= 13 %)) dirty-bytes)
clean-bytes (byte-array clean-seq)]
(.write out clean-bytes))))