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ä”:
- Clojure documentation for slurp
- Clojure documentation for line-seq
- Clojure for the Brave and True - Kirja Clojure-ohjelmoinnista
- Clojure from the ground up: Welcome - Clojure-ohjelmoinnin perusteet