Leitura e gravação em arquivo em Haskell
Estou tentando ler o conteúdo de um arquivo, transformar o texto em maiúsculas e, em seguida, escrevê-lo novamente.
Aqui está o código que eu havia escrito:
import System.IO
import Data.Char
main = do
handle <- openFile "file.txt" ReadWriteMode
contents <- hGetContents handle
hClose handle
writeFile "file.txt" (map toUpper contents)
return ()
No entanto, isso não grava nada no arquivo; na verdade, ele até o limpa.
Eu fiz algumas mudanças:
main = do
handle <- openFile "file.txt" ReadWriteMode
contents <- hGetContents handle
writeFile "file.txt" (map toUpper contents)
hClose handle
return ()
No entanto, recebo o erroresource busy (file is locked)
. Como posso fazer isso funcionar eporque não funcionou nos dois casos?