在Ocaml中向文件写入和读取自定义变量

在Ocaml中向文件写入和读取自定义变量,ocaml,Ocaml,我正在尝试写入一个变量,然后将其读取到一个文件中。变量来自我创建的数据类型 (如果有帮助: 类型sys= 字符串文件*字符串列表|字符串文件夹*系统列表 ) 我该怎么做? 我一直在读关于fprintf的使用,但我得到的是,它必须先以某种方式转换成字符串,对吗?如果你确定你的类型不会改变,你可以使用 每当您试图读取与其他版本的sys一起存储的值时(或者在写入和读取之间更改OCaml版本时),read\u sys将中断 如果您希望安全,您可以使用自动序列化程序,例如(如果您希望能够读取正在创建的文件

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

(如果有帮助:

类型sys= 字符串文件*字符串列表|字符串文件夹*系统列表

)

我该怎么做?
我一直在读关于fprintf的使用,但我得到的是,它必须先以某种方式转换成字符串,对吗?

如果你确定你的类型不会改变,你可以使用

每当您试图读取与其他版本的
sys
一起存储的值时(或者在写入和读取之间更改OCaml版本时),
read\u sys
将中断


如果您希望安全,您可以使用自动序列化程序,例如(如果您希望能够读取正在创建的文件)或进行高效转换。

好的,这很好,至少目前是这样。非常非常感谢@EBM:如果这篇文章回答了你的问题,你应该接受它来帮助未来的访问者。@pad是的,对不起,我当时一定忘了。
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