Erlang - 文件I/O



Erlang在处理I/O时提供多种方法。它拥有更便捷的类来提供以下文件功能:

  • 读取文件
  • 写入文件
  • 查看文件是文件还是目录

Erlang中的文件操作方法

让我们探索Erlang提供的一些文件操作。为方便起见,以下示例假设存在一个名为NewFile.txt的文件,其中包含以下文本:

示例1

示例2

示例3

此文件将用于以下示例中的读写操作。

一次读取文件内容一行

一般文件操作是通过使用文件库中的方法进行的。对于文件的读取,我们需要首先使用open操作,然后使用文件库中提供的read操作。以下是这两种方法的语法:

语法

  • 打开文件 – Open(File,Mode)
  • 读取文件 – read(FileHandler,NumberofBytes)

参数

  • File − 需要打开的文件位置。

  • Mode − 需要打开文件的模式。

以下是部分可用模式:

  • Read − 打开文件以进行读取,文件必须存在。

  • Write − 打开文件以进行写入。如果文件不存在,则创建它。如果文件存在,并且write未与read组合使用,则文件将被截断。

  • Append − 打开文件以进行写入,如果文件不存在,则创建它。对以追加模式打开的文件的每次写入操作都将发生在文件的末尾。

  • Exclusive − 打开文件以进行写入时,如果文件不存在,则创建它。如果文件存在,open将返回{error, exist}。

  • FileHandler − 文件句柄。使用file:open操作时返回此句柄。

  • NumberofByte − 需要从文件中读取的字节数。

返回值

  • Open(File,Mode) − 如果操作成功,则返回文件句柄。

  • read(FileHandler,NumberofBytes) − 返回从文件中读取的请求信息。

例如

-module(helloworld). 
-export([start/0]). 

start() -> 
   {ok, File} = file:open("Newfile.txt",[read]),
   Txt = file:read(File,1024 * 1024), 
   io:fwrite("~p~n",[Txt]).

输出 − 运行上述程序后,将得到以下结果。

Example1

现在让我们讨论一些其他可用的文件操作方法:

序号 方法和描述
1

file_read

允许一次读取文件的所有内容。

2

write

用于将内容写入文件。

3

copy

用于复制现有文件。

4

delete

此方法用于删除现有文件。

5

list_dir

此方法用于列出特定目录的内容。

6

make_dir

此方法用于创建新目录。

7

rename

此方法用于重命名现有文件。

8

file_size

此方法用于确定文件的大小。

9

is_file

此方法用于确定文件是否真的是文件。

10

is_dir

此方法用于确定目录是否真的是目录。

广告