如何在PureScript中读取文件(readFile)

0dB*_*0dB 4 purescript

在测试时,我想从磁盘读取和写入文件(JSON in,JSON out).我如何在PureScript中执行此操作?在Haskell我有类似的东西

main :: IO ()
main = do
  input <- readFile "input.json"
  writeFile "output.json" $ process input
Run Code Online (Sandbox Code Playgroud)

我的所有尝试到目前为止都失败了,包括试图使用readFile从import Node.FS.Sync.

顺便说一句,如果我的JSON文件中还有其他(更好)的阅读方式,请告诉我.(我不是JavaScript专家,但我想将一些 - 严格 - Haskell代码移植到JS,以便它可以在其他地方使用.)

小智 6

或者使用purescript 0.12

module Main where

import Prelude
import Effect (Effect)
import Effect.Console (log)

import Node.Encoding (Encoding(..))
import Node.FS.Sync (readTextFile)

main :: Effect Unit
main = do
  log =<< readTextFile UTF8 "input.json"
Run Code Online (Sandbox Code Playgroud)


Chr*_*tin 4

这是读取和打印文件的完整工作示例。

module Main where

import Prelude (Unit)

import Control.Bind ((=<<))
import Control.Monad.Eff (Eff)
import Control.Monad.Eff.Console (CONSOLE, log)
import Control.Monad.Eff.Exception (EXCEPTION)

import Node.Encoding (Encoding(..))
import Node.FS (FS)
import Node.FS.Sync (readTextFile)

main :: forall e. Eff (console :: CONSOLE, exception :: EXCEPTION, fs :: FS | e) Unit
main = do
  log =<< readTextFile UTF8 "input.json"
Run Code Online (Sandbox Code Playgroud)

依赖项:

  • purescript-控制台
  • purescript eff
  • purescript 数学
  • purescript-node-fs-aff
  • 纯脚本控制