将自定义变量写入和读取到Ocaml中的文件

EBM*_*EBM 6 ocaml

我正在尝试编写然后将变量读取到文件中.变量来自我创建的数据类型.

(如果有帮助:

type sys = string*string list的文件 string*sys list的文件夹;;

)

我怎样才能做到这一点?我一直在阅读关于fprintf的使用,但是对于我得到的东西,它必须先以某种方式转换为String,对吧?

Tho*_*mas 7

如果您确定您的类型不会改变,您可以使用input_valueoutput_value来自Pervasives.

let write_sys sys file =
  let oc = open_out file in
  output_value oc sys;
  close_out oc

let read_sys file =
  let ic = open_in file in
  let sys : sys = input_value ic in
  close_in ic;
  sys
Run Code Online (Sandbox Code Playgroud)

read_sys每当你试图读取与其他版本存储的值时sys(或者如果你在写和读之间改变你的OCaml版本),它就会中断.

如果您需要安全性,可以使用sexplib等自动序列化程序(如果您希望能够读取正在创建的文件)或者使用biniou进行高效转换.