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

时间:2012-03-29 22:46:41

标签: ocaml

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

如果有帮助:

  

输入sys =       字符串文件*字符串列表| string * sys list ;;

的文件夹

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

1 个答案:

答案 0 :(得分:7)

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

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
只要您尝试读取与read_sys的其他版本一起存储的值(或者如果您在写入和阅读之间更改OCaml的版本),

sys就会中断。

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

相关问题