Haskell &引用;资源繁忙(文件已锁定)";哈斯克尔错误

Haskell &引用;资源繁忙(文件已锁定)";哈斯克尔错误,haskell,Haskell,我对哈斯克尔很陌生。事实上,我正在努力 我遇到了这段代码: import System.IO import Data.Char main = do contents <- readFile "girlfriend.txt" writeFile "girlfriendcaps.txt" (map toUpper contents) import System.IO 导入数据.Char main=do 内容完全取决于你想做什么。通常,在任

我对哈斯克尔很陌生。事实上,我正在努力 我遇到了这段代码:

import System.IO     
import Data.Char  

main = do     
    contents <- readFile "girlfriend.txt"     
    writeFile "girlfriendcaps.txt" (map toUpper contents) 
import System.IO
导入数据.Char
main=do

内容完全取决于你想做什么。通常,在任何语言中,这都可能是一个糟糕的设计,因为如果程序内部或外部出现任何错误(例如用户错误),那么您已经破坏了原始数据,无法重试。它还要求整个文件都保存在内存中,如果只有几个字节,这是很酷的,但如果有人决定在一个非常大的文件上运行它,这就不太好了

如果你真的想这样做,那么为输出生成一个临时文件名,一旦你知道你已经成功写入了它,你就可以删除原始文件并重命名新文件。

事实上,这是一个“懒惰的评估”

import System.IO
导入数据.Char
main=do

路径您要查找的是如何在
ReadWriteMode
中打开文件

fileHandle <- openFile "fileName.txt" ReadWriteMode
contents <- hGetContents fileHandle
文件句柄
import System.IO
import Data.Char

main = do
    path <- getLine
    contents <- readFile path
    writeFile path (map toUpper contents)
fileHandle <- openFile "fileName.txt" ReadWriteMode
contents <- hGetContents fileHandle