【问题标题】:Writting and reading a custom variable to a file in Ocaml在 Ocaml 中将自定义变量写入和读取文件
【发布时间】:2012-04-13 15:32:28
【问题描述】:

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

(如果有帮助:

类型 sys = 字符串文件 * 字符串列表 | string * sys list的文件夹;;

)

我该怎么做? 我一直在阅读有关 fprintf 的使用,但就我所知,它必须先以某种方式转换为字符串,对吧?

【问题讨论】:

    标签: ocaml


    【解决方案1】:

    如果您确定您的类型不会改变,您可以使用 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
    

    每当您尝试读取使用其他版本的 sys 存储的值时(或者如果您在写入和读取之间更改您的 OCaml 版本),read_sys 就会中断。

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

    【讨论】:

    • 好吧,这样就可以了,至少现在是这样。非常非常感谢!
    • @EBM:如果这篇文章回答了你的问题,你应该接受它以帮助未来的访问者。
    • @pad 是的,对不起,我当时一定忘记了。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多