Erlang - 文件 I/O


Erlang 在处理 I/O 时提供了许多方法。它有更简单的类来为文件提供以下功能 -

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

Erlang中的文件操作方法

让我们探讨一下 Erlang 提供的一些文件操作。出于这些示例的目的,我们假设有一个名为NewFile.txt的文件,其中包含以下文本行

示例1

例2

例3

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

一次一行读取文件的内容

对文件的一般操作都是使用文件库中提供的方法进行的。对于文件的读取,我们需要首先使用打开操作,然后使用作为文件库的一部分可用的读取操作。以下是这两种方法的语法。

句法

  • 打开文件 – 打开(文件,模式)
  • 读取文件 – read(FileHandler,NumberofBytes)

参数

  • 文件- 这是需要打开的文件的位置。

  • 模式- 这是需要打开文件的模式。

以下是一些可用的模式 -

  • 读取- 打开必须存在的文件以供读取。

  • 写入- 文件打开以进行写入。如果不存在则创建。如果文件存在,并且写入未与读取结合使用,则文件将被截断。

  • Append - 文件将被打开以进行写入,如果不存在则将创建该文件。对使用追加打开的文件的每个写入操作都将在文件末尾进行。

  • 独占- 当打开该文件进行写入时,如果该文件不存在,则创建该文件。如果文件存在,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

文件读取

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

2

用于将内容写入文件。

3

复制

用于制作现有文件的副本。

4

删除

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

5

列表目录

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

6

生成目录

该方法用于创建一个新目录。

7

改名

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

8

文件大小

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

9

是文件

该方法用于判断一个文件是否确实是一个文件。

10

是_目录

该方法用于判断一个目录是否确实是一个目录。