Haskell:
Tekstitiedoston lukeminen
How to:
import System.IO
-- Tiedoston lukeminen rivillesi
main = do
fileHandle <- openFile "esimerkki.txt" ReadMode
contents <- hGetContents fileHandle
putStr contents
hClose fileHandle
-- Toisaalta, käytämme 'readFile' funktiota (helppo tapa):
mainLueHelppo = do
contents <- readFile "esimerkki.txt"
putStr contents
-- Yksinkertainen tapa luetella tiedoston rivit:
mainRivit = do
contents <- readFile "esimerkki.txt"
let rivit = lines contents
mapM_ putStrLn rivitOdotettu tuloste:
Moi, tämä on tiedosto esimerkki.
Tässä on toinen rivi.Deep Dive
Tekstitiedostojen käsittely on oleellista monille sovelluksille. Historiassa tiedostonkäsittelyyn käytettiin alhaisen tason IO-operaatioita C:ssä. Haskellissa se yksinkertaistui funktioiden, kuten readFile ja hGetContents, myötä.
Vaihtoehtoisesti voit käyttää ByteString tai Text kirjastoa, jotka käsittävät suuren datamäärän tehokkaammin kuin perinteiset String:it.
Kun avaat tiedoston, muista aina sulkea se. Tämä vapauttaa resurssit. withFile funktio hoitaa tämän automaattisesti.