;; for Clojure 1.1
(require '[clojure.contrib.duck-streams :as io])
;; for bleeding edge
(require '[clojure.java.io :as io])
(with-open [fr (io/reader "/path/to/the/file")]
(let [[first-line & other-lines] (doall (line-seq fr))]
;; do stuff with the lines below...
...))
Обновление: Ах, только что понял, что я взял "остальное" из вопроса, чтобы обозначить "остальные строки в файле", таким образом, в приведенном выше other-lines
являетсяПоследовательность всех строк в файле, кроме первой.
Если вам нужна вместо этого «строка, содержащая остальное содержимое файла», вы можете использовать приведенный выше код, но тогда (require '[clojure.contrib.str-utils2 :as str])
/ (require '[clojure.string :as str])
(в зависимости от используемой вами версии Clojure) и скажите (str/join "\n" other-lines)
, чтобы воссоединить other-lines
в одну строку;или, альтернативно, используйте что-то вроде этого:
(let [contents (slurp "/path/to/the/file")
[first-line rest-of-file] (.split #"\n" contents 2)]
...)