📜  Erlang-文件I O(1)

📅  最后修改于: 2023-12-03 15:00:36.817000             🧑  作者: Mango

Erlang文件IO

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以及如何使用它们来打开、读写和关闭文件。我希望这篇文章能对您有所帮助!