Clojure:
Tekstitiedoston lukeminen

How to:

“Näin teet:”

Tiedoston lukeminen kokonaisuudessaan:

(slurp "esimerkki.txt")

Rivien lukeminen yksi kerrallaan:

(with-open [rdr (clojure.java.io/reader "esimerkki.txt")]
  (doseq [line (line-seq rdr)]
    (println line)))

Tulostus voi näyttää tältä:

Ensimmäinen rivi tekstiä
Toinen rivi tekstiä
Kolmas rivi tekstiä

Deep Dive

“Sukellus syvemmälle”:

Clojuren slurp lukaisee koko tiedoston muistiin kerralla. Tämä on nopeaa ja kätevää pienten tiedostojen kanssa. Pitkien tiedostojen kanssa muisti voi kuitenkin loppua, joten silloin line-seq ja reader ovat parempia vaihtoehtoja, koska ne käsittelevät tiedoston rivi riviltä.

Historiallisesti, lukuoperaatiot juontavat juurensa ohjelmoinnin alkuhämäristä, jolloin tiedon persistenssi levyillä oli ratkaiseva edistysaskel. Clojure puolestaan suosii funktionaalista tapaa käsitellä tiedostoja, mikä näkyy sen keräilyfunktioiden ja laiskan evaluaation hyödyntämisessä.

Vaihtoehtoisesti, voimme käyttää clojure.java.io -kirjaston funktioita, jotka tarjoavat Java-interoperabiliteettia – mahdollisuuden käyttää Javan IO-kirjastoa.

See Also

“Muita lähteitä”: