如何将给定文件的全部内容读入字符串?

时间:2018-12-18 19:18:31

标签: ocaml

我给定的文件/path/file.txt例如包含以下内容:

  

Hello World!
尝试读给我听。

如何在代码内的一个字符串中读取整个内容?
对于此特定示例,字符串应如下所示:

"Hello World!\nTry to read me."

3 个答案:

答案 0 :(得分:5)

如果您不想使用Core,则可以使用以下内置Pervasives模块中的功能:

let read_whole_file filename =
    let ch = open_in filename in
    let s = really_input_string ch (in_channel_length ch) in
    close_in ch;
    s

答案 1 :(得分:3)

为使以下解决方案正常工作,您需要使用Jane Street的Core库,方法是在使用以下任何代码的地方上方的任何行上编写open Core

In_channel.read_all "./input.txt"以单个字符串返回当前文件夹中input.txt的内容。

也有用:

  • In_channel.read_lines "./input.txt"返回文件中的行列表

  • In_channel.fold_lines将文件中的所有行折叠为一个变量,也就是累加器

答案 2 :(得分:-1)

如果您想阅读所有的stdin:-

really_input_string stdin (in_channel_length stdin)