Как преобразовать последовательность в байт [] в Clojure?

Мне нужно записать необработанные байты в файл. Я делаю это с:

(.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))))
5
задан qertoip 10 August 2010 в 18:11
поделиться