Elixir:
编写文本文件
如何操作:
Elixir通过内置模块使文件处理变得简单。写入文件的主要方式是使用File.write/2
或File.write!/2
函数,前者返回一个:ok
或:error
元组,后者在失败时引发错误。
以下是一个简单的例子:
# 写入文件,简单消息
File.write("hello.txt", "Hello, World!")
# 当你运行代码时,它会创建"hello.txt"并写入"Hello, World!"作为内容
要向文件追加内容,你应使用File.open/3
并带上[:write, :append]
选项,然后使用IO.binwrite/2
来追加内容:
# 追加到文件
{:ok, file} = File.open("hello.txt", [:write, :append])
IO.binwrite(file, "\nLet's add another line.")
File.close(file)
# 现在"hello.txt"包括了第二行"Let's add another line."
如果你正在处理大量数据或需要对写入过程有更多控制,你可能会使用Stream
模块来懒加载地写入数据到文件:
# 懒加载地写入大量数据集
stream_data = Stream.iterate(0, &(&1 + 1))
|> Stream.map(&("Number: #{&1}\n"))
|> Stream.take(10)
File.open!("numbers.txt", [:write], fn file ->
Enum.each(stream_data, fn line ->
IO.write(file, line)
end)
end)
# 这将创建"numbers.txt",写入数字0到9,每个数字占一行。
对于需要更复杂文件处理的项目,你可能会查看第三方库如CSV
,它为CSV文件操作提供了专门的功能,但请记住,对于许多目的而言,Elixir的内置功能已经绰绰有余。