我要解析一個文件,確實是一個必須先讀它,這是我的計劃:如何使用Data.ByteString解析7GB文件?
import qualified Data.ByteString.Char8 as B
import System.Environment
main = do
args <- getArgs
let path = args !! 0
content <- B.readFile path
let lines = B.lines content
foobar lines
foobar :: [B.ByteString] -> IO()
foobar _ = return()
但是,編譯後
> ghc --make -O2 tmp.hs
執行經過以下錯誤,當用7G字節文件調用。
> ./tmp big_big_file.dat
> tmp: {handle: big_big_file.dat}: hGet: illegal ByteString size (-1501792951): illegal operation
感謝您的回覆!
你在哪個平臺上? – 2012-04-04 13:35:29
@DanielFischer你叫'平臺'是什麼?如果它是操作系統,那麼我使用Linux ubuntu 10.4。謝謝 – 2012-04-04 13:37:23
32位或64位?一般來說,一個32位的操作系統會遇到很大的文件問題。 – 2012-04-04 13:39:22