erlang文件操作
来源:互联网 发布:json和js对象的区别 编辑:程序博客网 时间:2024/06/01 15:40
操作文件一般分为三个模块
file模块:这个模块用于文件的打开,关闭,读取,写入和目录列表filename模块:以平台独立的方式提供了一套操纵文件名的函数,因此可以在不同的操作系统上执行相同的操作,而不用修改代码
filelib模块:是file模块的扩展,生成文件列表、检验文件类型等操作,是基于file模块的函数来编写的
io模块:提供了一系例文件打开后的操作
change_group
change_owner
change_time
close
consult
copy
del_dir
delete
eval
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
set_cwd
sync
truncate
write
write_file
write_file_info
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}).
0 0
- erlang文件操作
- erlang文件操作
- erlang 文件读写操作
- Erlang正则解析操作文件
- Erlang File基本操作
- erlang lists 操作
- erlang 元组操作
- erlang字符串操作
- erlang字符串操作
- erlang lists操作
- Erlang操作时间
- Erlang数据库Mnesia操作
- erlang mysql 操作
- erlang list 操作
- Erlang的EmakeFile文件
- cowboy erlang 文件上传
- cowboy erlang 上传文件
- erlang .app文件主要参数
- 的哈是大师姐科大看见啊萨克解答
- 逻辑DG之Standby角色转换
- HTML
- CSS设置hr样式
- 固件挂载
- erlang文件操作
- Android 隐式意图和显示意图
- Go 语言中 channel 使用总结
- 解析XML时,org.apache.harmony.xml.ExpatParser$ParseException: At line 1, column 449: not well-forme
- 最大子段和算法 不同复杂度方法实现
- Java高效编程之二【对所有对象都通用的方法】
- Ubuntu下手机USB 显示??? insufficient permissions for device
- D3D中的世界矩阵,视图矩阵,投影矩阵
- JS字符串拼接的问题