Elixir:
阅读文本文件

How to / 怎么做

以下是Elixir代码示例:

# 载入文件读取函数
File.read("hello.txt")
# 如果文件存在,返回 {:ok, "文件内容"}
# 如果文件不存在,返回 {:error, :enoent}
# 逐行读取
File.stream!("hello.txt") 
|> Enum.each(fn line -> 
   IO.puts(line)
end)
# 输出文件的每一行

Deep Dive / 深入探索

在Elixir 1.0发布时,File.read/1File.stream!/1就存在了,让读取文件变得简单。选择读取整个文件或逐行读取取决于文件大小和需求;小文件通常一次性读取,大文件建议逐行处理。

File.stream!/1 返回一个流(Stream),这是一种懒序列,逐个产出文件中的行,有效管理内存消耗。

替代方案如使用:file.open:file.read_line等低级Erlang函数提供了更多控制,但通常不需要。

See Also / 另请参阅