Programming Erlang 第13章笔记 文件编程
文件编程
译者: | gashero |
---|
本章我们会看看文件管理的常见函数。Erlang标准发布版包含大量文件管理函数。我们看看程序中最常用的一部分。也会看一些文件操作的例子。另外也会提及一些罕见的文件操作,以便让你知道,他们是存在的。如果你想了解更多,去看手册吧。
1 库的组织
文件管理函数被阻止到了4个模块中:
file :用于打开、关闭、读取、写入文件、列目录等等的例程。 file 模块中的最常用函数在13.2节中有所讲解。更多细节请参考手册。
filename :管理不同平台上的文件名形式的细节,所以你可以在不同操作系统上使用相同的代码。
filelib :是 file 模块的扩展,包含一些列出文件、检查文件类型等等的函数。大部分都是使用 file 模块的函数来编写的。
io :在打开的文件上的操作函数。包含解析数据、按照格式写入数据到文件等。
2 读取文件的不同方式
让我们先看看读取文件的一些选项。首先写一个小程序来打开文件和读取数字,通过几种不同方式。
文件的内容只是字节流。他们的意义依赖于如何解释。
为了演示,我们对所有例子使用相同的文件。它事实上包含Erlang术语的序列。依赖于如何打开和读取文件,我们可以把内容解释为一列Erlang术语,作为一系列文本行,或者作为原始的二进制数据而不作任何解释。
这是原始文件:
{person, "joe", "armstrong", [{occupation, programmer}, {favoriteLanguage, erlang}]}. {cat, {name, "zorro"}, {owner, "joe"}}.
现在我们用几种方式来读取它。
file 模块中的函数及其解释:
函数 | 解释 |
change_group | 改变文件所属的组 |
change_owner | 改变文件的拥有者 |
change_time | 改变文件的修改时间和上次访问时间 |
close | 关闭文件 |
consolt | 从文件读取Erlang术语 |
copy | 复制文件内容 |
del_dir | 删除目录 |
delete | 删除文件 |
eval | 求值文件中的Erlang表达式 |
format_error | 返回描述字符串或错误原因 |
get_cwd | 获取当前工作目录 |
list_dir | 列出一个目录中的所有文件 |
make_dir | 新建目录 |
make_link | 新建硬链接 |
make_symlink | 新建符号链接 |
open | 打开文件 |
position | 设置文件指针位置 |
pread | 在指定位置读取文件 |
pwrite | 在指定位置写入文件 |
read | 从文件读取 |
read_file | 返回整个文件 |
read_file_info | 获取文件信息 |
read_link | 获取链接指向的位置 |
read_link_info | 获取链接或文件的信息 |
rename | 重命名文件 |
script | 求值并返回文件中的Erlang表达式 |
set_cwd | 设置当前工作目录 |
sync | 同步内存缓冲到硬盘 |
truncate | 截短文件 |
write | 写入到文件 |
write_file | 写入整个文件 |
write_file_info | 改变文件信息 |