当前位置: 首页 > 编程笔记 >

Erlang IO编程之文件目录操作常用方法小结

逑翰翮
2023-03-14
本文向大家介绍Erlang IO编程之文件目录操作常用方法小结,包括了Erlang IO编程之文件目录操作常用方法小结的使用技巧和注意事项,需要的朋友参考一下

Erlang用于操纵文件I/O的模块有:

file模块:打开、读、写、关闭文件已经操作目录的方法基本都在这里

filename模块:提供平台独立方式用于操纵文件名

filelib模块:file模块的扩展,提供了更多的实用工具,在file模块基础上构建

io模块:一系列用于操作打开的文件的方法,解析格式、格式化输出等等。

1.打开文件:


{ok,F}=file:open("data1.dat",read). %读模式打开

{ok,F}=file:open("data1.dat",write). %写模式

{ok,F}=file:open("data1.dat",[read,write]). %读、写、二进制模式


支持的所有模式参见文档。

2.读取:
(1)如果以一个Erlang term的方式读取,采用:


io:read(F,'').


其中第二个参数是提示符,用于在标准输入时作为提示。
这个方法有一个变形read/3

read(IoDevice, Prompt, StartLine)


第三个参数用于指定开始行数。

(2)如果是按字节读取,文件必须按raw模式打开采用:


{ok, Data}=file:read(F,100).


(3)按行读取:

io:get_line(F, '').


(4)读取整个文件的内容:

{ok,Binary}=file:read_file("data1.dat").


注意返回的是一个binary类型

(5)随机读取:


{ok,Binary}=file:pread(F, 22, 46).

其中第二个参数是开始位置,第三个参数是读取的长度,返回的也是binary类型。

3.写入文件:
(1)采用io:format/3方法:


{ok, S} = file:open("test2.dat", write).

io:format(S, "~s~n", ["Hello readers"]).

io:format(S, "~w~n", [123]).


其中的~开头的字符是一个个格式化命令,比如常见的:
~c   anscii码
~f   浮点数
~s   字符串
~w   Erlang term
~p   与~w类似,不过当多行时将自动换行
~n   显然,换行符

(2)写入整个文件:


file:write_file(File, IO)


其中IO可以为list、integer或者binary类型

(3)随机写入:


file:pwrite(F, 10, <<"new">>)


4.关闭文件:

file:close(F).


5.目录操作:=
都是linux命令风格的操作,

cd("/home/dennis/").  %进入目录

file:list_dir(".").   %列出当前目录文件

file:make_dir("test").  %创建test目录

file:del_dir("test").   %删除test目录

6.获取文件信息,比如文件大小,最后修改时间等等。调用file:read_file_info/1方法,该方法返回一个file_info记录类型,里面拥有文件的具体信息,比如type、size等。


{ok, Facts} =file:read_file_info(File).

io:format("~s~n",{Facts#file_info.type, Facts#file_info.size}).


7.复制和删除文件:

file:copy(Source, Destination).

file:delete(File).


这个笔记仅仅记录了一些常用到的方法,一些高级的工具方法并没有涉及,具体参考Erlang的文档。

 类似资料:
  • 本文向大家介绍PHP常用技术文之文件操作和目录操作总结,包括了PHP常用技术文之文件操作和目录操作总结的使用技巧和注意事项,需要的朋友参考一下 一、基本文件的操作 文件的基本操作有:文件判断、目录判断、文件大小、读写性判断、存在性判断及文件时间等 结果: 二、目录的操作 目录的操作有:遍历目录、删除、复制、大小统计等 1、遍历目录 结果 2、统计目录大小 结果: 3、删除目录 删除成功的提示信息

  • 目录其本质也是一种文件,它的r权限是ls,x权限是cd DIR结构体 Unix系统为用户提供了一种和文件结构FILE类似的目录结构DIR。它被称为目录流,目录中的目录项用dirent结构表示(但DIR的并非包含dirent成员) dirent结构 结构体成员 类型 描述 d_into ino_t 文件的inode号 d_name[ ] char 以NULL结尾的文件名 常用函数(库调用) 函数名

  • 本文向大家介绍Ruby中一些常用的文件操作方法小结,包括了Ruby中一些常用的文件操作方法小结的使用技巧和注意事项,需要的朋友参考一下 初学Ruby,很多需要学习,现在开始尝试使用Ruby来写一个脚本,其中用到了很多文件相关的操作,这里阶段地整理一些。便于后续的再次查找。 文件或目录是否存在 是否为文件 是否为目录 从路径中获取文件名 列出目录下的全部子文件 获得父目录

  • 本文向大家介绍Java编程中最基础的文件和目录操作方法详解,包括了Java编程中最基础的文件和目录操作方法详解的使用技巧和注意事项,需要的朋友参考一下 文件操作 平常经常使用JAVA对文件进行读写等操作,这里汇总一下常用的文件操作。 1、创建文件 2、创建文件夹 3、删除文件 4、删除文件夹 递归删除文件夹下面的子文件和文件夹 5、读文件 (1)以字节为单位读取文件,常用于读二进制文件,如图片、声

  • 本文向大家介绍PHP面试题之文件目录操作,包括了PHP面试题之文件目录操作的使用技巧和注意事项,需要的朋友参考一下 这道题其实并不难,考点主要在函数substr() strrchr()  array_pop()  strrpos() strpos() strrev() explode()  pathinfo()。 废话不多说了,直接给大家贴代码了。 获取文件后缀,遍历目录层次 以上代码是不是很简单

  • 如果我们要操作文件、目录,可以在命令行下面输入操作系统提供的各种命令来完成。比如dir、cp等命令。 如果要在Python程序中执行这些目录和文件的操作怎么办?其实操作系统提供的命令只是简单地调用了操作系统提供的接口函数,Python内置的os模块也可以直接调用操作系统提供的接口函数。 打开Python交互式命令行,我们来看看如何使用os模块的基本功能: >>> import os >>> os.