Erlang - 文件 I/O
Erlang 在处理 I/O 时提供了许多方法。 它有更简单的类来为文件提供以下功能 −
- 读取文件
- 写入文件
- 查看文件是文件还是目录
Erlang中的文件操作方法
让我们探索一下 Erlang 提供的一些文件操作。 出于这些示例的目的,我们假设有一个名为 NewFile.txt 的文件,其中包含以下文本行
示例1
示例2
示例3
该文件将用于以下示例中的读写操作。
一次一行读取文件内容
对文件的一般操作都是使用文件库中提供的方法进行的。 对于文件的读取,我们需要首先使用打开操作,然后使用作为文件库的一部分可用的读取操作。 以下是这两种方法的语法。
语法
- 打开文件 – Open(File,Mode)
- 读取文件 – read(FileHandler,NumberofBytes)
参数
File − 这是需要打开的文件的位置。
Mode − 这是文件需要打开的模式。
以下是一些可用的模式 −
Read − 该文件必须存在,已打开以供读取。
Write − 文件被打开以进行写入。 如果不存在则创建。 如果文件存在,并且写入未与读取结合使用,则文件将被截断。
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 |
可允许一次读取文件的所有内容。 |
2 |
用于将内容写入文件。 |
3 |
用于复制现有文件。 |
4 |
此方法用于删除现有文件。 |
5 |
该方法用于列出特定目录的内容。 |
6 |
该方法用于创建一个新目录。 |
7 |
此方法用于重命名现有文件。 |
8 |
该方法用于确定文件的大小。 |
9 |
该方法用于判断一个文件是否确实是一个文件。 |
10 |
该方法用于判断一个目录是否确实是一个目录。 |