可以解析<path>部分GET /<path> HTTP/1.1使用模式匹配,或任何优雅而不是直接字符串操作,如split或slice
我想将给定目录中的所有json文件解析为数据类型Result.
所以我有一个解码功能
decodeResult :: Data.ByteString.Lazy.ByteString -> Maybe Result
Run Code Online (Sandbox Code Playgroud)
我从Data.Text.Lazy.IO开始将文件加载到Lazy ByteString中,
import qualified Data.Text.Lazy.IO as T
import qualified Data.Text.Lazy.Encoding as T
getFileContent :: FilePath -> IO B.ByteString
getFileContent path = T.encodeUtf8 `fmap` T.readFile path
Run Code Online (Sandbox Code Playgroud)
它编译了,但我遇到了太多文件打开的问题,所以我想也许我应该使用withFile.
import System.IO
import qualified Data.ByteString.Lazy as B
import qualified Data.Text.Lazy.IO as T
import qualified Data.Text.Lazy.Encoding as T
getFileContent :: FilePath -> IO (Maybe Result)
getFileContent path = withFile path ReadMode $ \hnd -> do
content <- T.hGetContents hnd
return $ …Run Code Online (Sandbox Code Playgroud)