File I/O
在使用I/O时,Erlang提供了许多方法。 它有更简单的类来为文件提供以下功能 -
- 读文件
- 写入文件
- 查看文件是文件还是目录
Erlang中的文件操作方法
让我们来探讨一下Erlang提供的一些文件操作。 出于这些示例的目的,我们假设有一个名为NewFile.txt的文件,其中包含以下文本行
Example1
Example2
Example3
此文件将用于以下示例中的读取和写入操作。
一次读取一行文件的内容
对文件的一般操作是使用文件库中可用的方法执行的。 对于文件的读取,我们需要首先使用open操作,然后使用read操作作为文件库的一部分。 以下是这两种方法的语法。
语法 (Syntax)
- 打开文件 - 打开(文件,模式)
- 读取文件 - 读取(FileHandler,NumberofBytes)
参数 (Parameters)
File - 这是需要打开的文件的位置。
Mode - 这是需要打开文件的模式。
以下是一些可用的模式 -
Read - 打开必须存在的文件以供阅读。
Write - 打开文件进行写入。 如果它不存在,则创建它。 如果文件存在,并且如果write不与read结合,则文件将被截断。
Append - 将打开文件进行写入,如果文件不存在,将创建该文件。 对append打开的文件的每个写操作都将在文件末尾进行。
Exclusive - 如果文件不存在,则会在打开以进行写入时创建该文件。 如果文件存在,open将返回{error,exist}。
FileHandler - 这是文件的句柄。 此句柄是在使用file:open操作时返回的句柄。
NumberofByte - 这是需要从文件中读取的信息的字节数。
返回值 (Return Value)
Open(File,Mode) - 如果操作成功,则返回文件的句柄。
read(FileHandler,NumberofBytes) - 从文件返回请求的读取信息。
例如 (For example)
-module(helloworld).
-export([start/0]).
start() ->
{ok, File} = file:open("Newfile.txt",[read]),
Txt = file:read(File,1024 * 1024),
io:fwrite("~p~n",[Txt]).
Output - 当我们运行上述程序时,我们将得到以下结果。
Example1
现在让我们讨论一些可用于文件操作的其他方法 -
Sr.No. | 方法和描述 |
---|---|
1 | 可用于允许一次读取文件的所有内容。 |
2 | 用于将内容写入文件。 |
3 | 用于制作现有文件的副本。 |
4 | 此方法用于删除现有文件。 |
5 | 此方法用于列出特定目录的内容。 |
6 | 此方法用于创建新目录。 |
7 | 此方法用于重命名现有文件。 |
8 | 此方法用于确定文件的大小。 |
9 | 此方法用于确定文件是否确实是文件。 |
10 | 此方法用于确定目录是否确实是目录。 |