📅  最后修改于: 2023-12-03 15:00:36.817000             🧑  作者: Mango
Erlang提供了多种文件IO的方法和函数,例如打开和关闭文件、读写文件等等。本文将会介绍这些函数和方法。
要打开一个文件并获得文件的句柄,可以使用file:open
函数。它接收两个参数,第一个是文件名,第二个是打开文件的模式。例如:{ok, File} = file:open("filename.txt", [read])
。
打开文件的模式可以是以下三种之一:
read
:只读模式。write
:只写模式。如果文件不存在,则创建它。如果文件已存在,则将其截断并覆盖。append
:附加模式。如果文件不存在,则创建它。如果文件已存在,则将数据附加到文件的末尾。要关闭文件并释放其句柄,请使用file:close
函数。例如:file:close(File)
。
要从文件读取数据,请使用file:read
函数。它接收句柄和要读取的字节数作为参数,并返回一个元组,其中第一个元素是状态(ok或eof),第二个元素是文件中读取的数据。例如:{ok, Data} = file:read(File, 1024)
。
要将数据写入文件,请使用file:write
函数。它接收句柄和要写入的数据作为参数,并返回ok或者{error, Reason}。例如:file:write(File, "Hello, world!")
。
可以使用file:position
函数来更改文件指针的位置。它接收句柄和要移动的字节数作为参数,并返回ok或者{error, Reason}。例如:file:position(File, {bof, 10})
可以将指针移动到文件的第10个字节。
要获取文件的大小,请使用file:read_file_info
函数。它返回一个包含文件大小和其他信息的元组。例如:{ok, FileInfo} = file:read_file_info("filename.txt")
。
%%% 打开文件
{ok, File} = file:open("filename.txt", [read]),
%%% 读取文件
{ok, Data} = file:read(File, 1024),
%%% 写入文件
file:write(File, "Hello, world!"),
%%% 关闭文件
file:close(File).
%%% 获取文件大小
{ok, FileInfo} = file:read_file_info("filename.txt"),
%%% 更改文件指针位置
file:position(File, {bof, 10}).
这篇文章介绍了Erlang中的文件IO相关API以及如何使用它们来打开、读写和关闭文件。我希望这篇文章能对您有所帮助!