Haskell:
Scrivere un file di testo
Come fare:
Il Prelude standard di Haskell fornisce un supporto elementare per scrivere su file utilizzando le funzioni writeFile
e appendFile
dal modulo System.IO
. Ecco un esempio base di come creare un nuovo file (o sovrascrivere uno esistente) e poi aggiungere del testo a un file.
import System.IO
-- Scrivere su un file, sovrascrivendo se esiste
main :: IO ()
main = do
writeFile "example.txt" "Questa è la prima riga.\n"
appendFile "example.txt" "Questa è la seconda riga.\n"
Quando esegui questo programma, viene creato (o svuotato) example.txt
e scrive “Questa è la prima riga.” seguito da “Questa è la seconda riga.” nella riga successiva.
Per una gestione dei file più avanzata, i programmatori Haskell si rivolgono spesso al pacchetto text
per un’elaborazione delle stringhe efficiente e al pacchetto bytestring
per la gestione dei dati binari. Ecco come utilizzare il pacchetto text
per l’IO sui file:
Prima di tutto, devi aggiungere text
alle dipendenze del tuo progetto. Poi, puoi usarlo come segue:
import qualified Data.Text as T
import qualified Data.Text.IO as TIO
-- Scrivere su un file utilizzando il pacchetto text
main :: IO ()
main = do
let content = T.pack "Utilizzando il pacchetto text per migliori prestazioni.\n"
TIO.writeFile "textExample.txt" content
TIO.appendFile "textExample.txt" $ T.pack "Aggiungendo la seconda riga.\n"
In questo frammento, T.pack
converte una normale String
nel tipo Text
, che è più efficiente. TIO.writeFile
e TIO.appendFile
sono gli equivalenti di text
per scrivere e appendere su file, rispettivamente.
L’esecuzione di questo codice risulterà in un file chiamato textExample.txt
con due righe di testo, dimostrando sia le capacità di creazione sia di aggiunta utilizzando la biblioteca avanzata text
per migliori prestazioni e capacità nella gestione del testo Unicode.